Django - 显示一个 ModelForm 外键字段

标签 django django-models django-forms

模型与形式

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(),
    }

此图书表单不允许更改作者

模板

但我想显示他的名字
<form action="/books/edit" method="post">{% csrf_token %}
  {{ form.author.label }}: {{ form.author.select_related.first_name }}
  {{ form.as_p }}
</form>



当然form.author.select_related.first_name不起作用

如何显示作者的名字?

最佳答案

这应该有效:

<form action="/books/edit" method="post">{% csrf_token %}
  {{ form.author.label }}: {{ form.instance.author.first_name }}
  {{ form.as_p }}
</form>
但是您不能使用此表单来创建书籍,只能用于更新,如果作者未在实例中设置,这将不起作用。

关于Django - 显示一个 ModelForm 外键字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10332514/

相关文章:

python - 如何在 Python 中使用新的 Twitter API 1.1 搜索?

django - 如何在 shell 中访问 OneToOneField

python - 限制 Django 中内联表单集的外键查询集

python - Django模型ImageField每次上传文件时都会创建一个嵌套文件夹

django - 为现有数据库/sql View 创建 django 模型?

python - Django - 从 django admin 编辑模板

python - Django modelformset order_by 不起作用

python - 对于从 CreateView 创建新帐户的新用户,将 is_staff 设置为 true

django - 向表单集中的表单添加自定义标题

Django 2 模型 1 形式