我想要做的是显示一个让用户:
Document型号)user_defined_code从下拉列表中选择其中一个选项(由UserDefinedCode模型填充)unique_code(存储在Code模型中)我不知道如何在表单中显示外键关系的字段.我知道在视图中你可以使用document.code_set(例如)来访问当前document对象的相关对象,但我不知道如何将它应用于ModelForm.
我的模特:
class UserDefinedCode(models.Model):
name = models.CharField(max_length=8)
owner = models.ForeignKey(User)
class Code(models.Model):
user_defined_code = models.ForeignKey(UserDefinedCode)
unique_code = models.CharField(max_length=15)
class Document(models.Model):
title = models.CharField(blank=True, null=True, max_length=200)
code = models.ForeignKey(Code)
active = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)
我的ModelForm
class DocumentForm(ModelForm):
class Meta:
model = Document
Run Code Online (Sandbox Code Playgroud) class Book(models.Model):
author = models.ForeignKey(User)
name = models.CharField(max_length=50)
class BookForm(forms.ModelForm):
class Meta:
model = Book
widgets = {
'author': forms.HiddenInput(),
}
Run Code Online (Sandbox Code Playgroud)
本书形式不允许更改作者
但我想显示他的名字
<form action="/books/edit" method="post">{% csrf_token %}
{{ form.author.label }}: {{ form.author.select_related.first_name }}
{{ form.as_p }}
</form>
Run Code Online (Sandbox Code Playgroud)
当然form.author.select_related.first_name不行
如何显示作者的名字?