я создал эту модель Django:Дисплей auth.User поля в соответствующей модели
class Teacher(models.Model):
user = models.OneToOneField('auth.User', on_delete=models.CASCADE, default=1)
surname = models.CharField(max_length=15, null=True)
creation_date = models.DateTimeField('creation date', auto_now_add=True)
deletion_date = models.DateTimeField('deletion date', null=True, blank=True)
и форму, чтобы представить его в режиме только для чтения:
class TeacherViewForm(ModelForm):
def __init__(self, *args, **kwargs):
super(TeacherViewForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
if instance and instance.pk:
for field in self.fields:
self.fields[field].widget.attrs['disabled'] = True
class Meta:
model = Teacher
exclude = ['deletion_date']
мнение выглядит следующим образом:
class TeacherViewDetail(generic.DetailView):
model = Teacher
template_name = 'control/teacher_detail.html'
form_class = TeacherViewForm
def get_form(self):
# Instantiate the form
form = self.form_class(instance=self.object)
return form
def get_context_data(self, **kwargs):
context = super(TeacherViewDetail, self).get_context_data(**kwargs)
context.update({
'form': self.get_form(),
})
return context
Как вы можете видеть, есть OneToOne
соотношение между Teacher
и auth.User
моделей. Мне нужно показать first_name
и last_name
от auth.User
модель, но показывается только username
.
Как я могу отобразить эти поля так же, как показано на рисунке Teacher.surname
? Должен ли я включать их в модель, поля form.fields или есть свойство, которое я должен изменить для его достижения?
Благодаря
Спасибо. Мне не нужна строка, подходящая для представления Пользователя, но для отображения полей auth.User (first_name и last_name) так же, как отображаются поля Учителя. – juankysmith
Что вы подразумеваете под полями учителя? – schwobaseggl
Поля учителя - это 'surname' и 'creation_date' ('deletion_date' исключен). В шаблоне я хочу видеть эти поля Учителя с «first_name» и «last_name» из модели auth.User – juankysmith