如何使用"label_from_instance"为字段设置"null=True"



我正在尝试使用label_from_instance为字段设置null=Trueblank=True

但它不能通过在model class中定义字段来设置。

如果我试图像下面的代码一样设置它,我会得到一个错误。

fk_id = NameChoiceField(queryset=PkModel.objects.all().order_by('pk_name').distinct(), null=True, blank=True)

TypeError:init((获得了意外的关键字参数"null">

在这种情况下,如何设置nullblank


以下是代码:

forms.py

from django import forms
from django.forms import ModelChoiceField
from .models import *

class NameChoiceField(ModelChoiceField):
def label_from_instance(self, obj):
return f'{obj.pk_name}'

class IndexForm(forms.ModelForm):
fk_id = NameChoiceField(queryset=PkModel.objects.all().order_by('pk_name').distinct())
class Meta:
model = FkModel
fields = '__all__'

型号.py

from django.db import models

class PkModel(models.Model):
pk_id = models.IntegerField(verbose_name='pk_id',primary_key=True)
pk_name = models.CharField(max_length=20, verbose_name='pk_name')
class Meta:
verbose_name_plural = 'PkModel'

class FkModel(models.Model):
fk_code = models.CharField(max_length=20, verbose_name='fk_code', primary_key=True)
fk_id = models.ForeignKey(PkModel, to_field='pk_id', db_column='fk_id', verbose_name='fk_id',
on_delete=models.CASCADE, null=True, blank=True)
class Meta:
verbose_name_plural = 'FkModel'

Python 3.8

Django 3.2

使用required=False

nullblank用于模型字段,并描述数据库级别的有效数据。在表单中,您声明是否必须设置字段才能使表单有效。

相关内容

  • 没有找到相关文章

最新更新