ich dieses Django Modell erstellt haben:Anzeige auth.User Felder in verwandten Modell
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)
und eine Form, die sie vertreten im schreibgeschützten Modus:
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']
Die Ansicht wie folgt aussieht:
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
Wie Sie sehen können, gibt es eine OneToOne
Beziehung zwischen dem Teacher
und 012.Modelle. Ich muss first_name
und last_name
von auth.User
Modell anzeigen, aber nur die username
wird angezeigt.
Wie kann ich diese Felder auf dieselbe Weise anzeigen, wie das Feld Teacher.surname
angezeigt wird? Muss ich sie in das Modell, die form.fields, aufnehmen oder muss ich eine Eigenschaft ändern, um sie zu erreichen?
Dank
Danke. Ich brauche keine Zeichenkette, die geeignet ist, den Benutzer zu repräsentieren, sondern auth.User-Felder (vorname und nachname) auf die gleiche Weise anzuzeigen, wie Lehrerfelder angezeigt werden. – juankysmith
Was meinen Sie mit Lehrerfeldern? – schwobaseggl
Lehrerfelder sind "Nachname" und "Erstellungsdatum" ("Löschdatum" ist ausgeschlossen). In der Vorlage möchte ich in der Lage sein, diese Lehrer Felder mit 'first_name' und 'last_name' von auth.User Modell – juankysmith