在 Django 表单表单中设置初始数据。选择()

Set initial data in Django Form forms.Select()

提问人:Ali Shekari 提问时间:11/4/2023 更新时间:11/4/2023 访问量:45

问:

我想为我的 staus 字段(即表单)设置初始值。Select() widget 在 django ModelForm 中,但它不起作用。我无法调试我的代码。

我的模型表单类是:

class CRMFollowUpStatusLogForm(ModelForm):
    class Meta:
        model = CRMFollowUpStatusLog
        fields = ['status']
        widgets = {
            "status": forms.Select()
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        status_id = kwargs["data"]["followup"].current_status.id
        # status_id is correctly passed here
        self.fields['status'].initial = status_id

status_id 已正确传递给 init 方法。但是 self.fields['status'].initial = status_id 无法正常工作。

CRMFollowUpStatusLog 为:

class CRMFollowUpStatusLog(models.Model):
    status = models.ForeignKey(
        "CRMFollowUpStatus", related_name="follow_up_logs", on_delete=models.CASCADE
    )
    follow_up = models.ForeignKey(
        "CRMFollowUp", related_name="status_logs", on_delete=models.CASCADE
    )


CRMFollowUpStatus 为:

class CRMFollowUpStatus(models.Model):
    name = models.CharField(max_length=256, unique=True)

CRMFollowUpStatusLogForm 的 init 方法中的status_id是 CRMFollowUpStatus 的 pk。

django django-forms django-admin

评论


答: 暂无答案