簡體   English   中英

Django-具有從ForeignKey屬性派生的字段的ModelForm

[英]Django - ModelForm with fields derived from ForeignKey attributes

考慮以下模型

class Book(models.Model):
    name   = models.CharField(max_length=100)
    author = models.ForeignKey(Author) 

class Author(models.Model):
    name = models.CharField(max_length=50)

我想要一個表格來輸入書籍和作者的名字(均為文本輸入)。 我不希望作者使用ModelChoiceField 如果作者不存在,我將在我的視圖中創建它。 我可以通過聲明性地定義 author_name字段和max_length來實現這一點,如下所示:

class BookForm(ModelForm):
    author_name = forms.CharField(max_length=50)

    class Meta:
        model = Book
        fields = ['name']

如何避免在BookForm中對author_name的max_length進行硬編碼? 我可以以某種方式從鏈接的Author模型中推斷出它嗎?

參考:以編程方式獲取Django模型字段的max_length

要獲取模型字段的max_length

您可以使用Author._meta.get_field('name').max_length

也許您可以使用TextField

請參閱: Django CharField與TextField

PS。 如果這不是一個好主意,請不要投票給我。 我試圖添加評論作為建議,但是我沒有足夠的要點:(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM