【问题标题】:Accessing other fields in ModelForm访问 ModelForm 中的其他字段
【发布时间】:2020-07-03 16:50:56
【问题描述】:

我有以下型号。

class FAQ(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
    question = models.CharField(max_length=100, null=True, blank=False)
    answer = models.TextField(max_length=500, null=True, blank=False)

    def __str__(self):
        return self.user.username  

我还有下面的 ModelForm

class FAQForm (forms.ModelForm):

    class Meta:
        exclude = ('user',) 
        model = FAQ


    def __init__(self, *args, **kwargs):

        super(FAQForm, self).__init__(*args, **kwargs)

在我的模型表单中,如何访问 FAQ 模型的用户字段中的值?我希望能够在 def init(self, *args, **kwargs): 或 super() 下访问它。

非常感谢!

【问题讨论】:

  • 当使用ModelForm 更新对象时,将在kwargs 中传递一个名为instance 的参数,该参数将是要更新的实例,并且所有字段都可用

标签: django django-forms


【解决方案1】:

这行得通。谢谢伊恩。

class FAQForm (forms.ModelForm):

    class Meta:
        exclude = ('user',) 
        model = FAQ


    def __init__(self, *args, **kwargs):

        super(FAQForm, self).__init__(*args, **kwargs)

        user = self.instance.user

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2015-12-02
    • 2020-11-02
    • 2014-10-12
    相关资源
    最近更新 更多