Python Django模型表单字段根据条件具有用户下拉列表
在Django模型表单(Product_definition)中,我希望有一个下拉列表(商户名称),仅当用户表单中的指定为“商户”时,才会显示用户。 是否有可能基于此条件获取下拉列表的用户列表。请注意,我不要求它是外键,因为不需要连接模型。 这是包含以下名称的表格:Python Django模型表单字段根据条件具有用户下拉列表,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,在Django模型表单(Product_definition)中,我希望有一个下拉列表(商户名称),仅当用户表单中的指定为“商户”时,才会显示用户。 是否有可能基于此条件获取下拉列表的用户列表。请注意,我不要求它是外键,因为不需要连接模型。 这是包含以下名称的表格: from django.contrib.auth.models import User class UserProfileInfo(models.Model): user = models.OneToOneField(Us
from django.contrib.auth.models import User
class UserProfileInfo(models.Model):
user = models.OneToOneField(User,on_delete = models.CASCADE)
#extra UserAttribute
MERCHANT = 'MR'
FABRIC = 'FR'
WASHING = 'WS'
PRINT = 'PR'
PLANNER = 'PL'
DESIGNATION_CHOICES =(
(PLANNER,'Planner'),
(MERCHANT,'Merchant'),
(FABRIC,'Fabric'),
(WASHING,'Washing'),
(PRINT,'Printing'),
)
Designation =models.CharField(
max_length = 20,
choices = DESIGNATION_CHOICES,
default= 'PLANNER'
)
def __str__(self):
return self.user.username
这是一张有商户名称的表格,我希望所有商户的名称都出现在这里
class Product_definition(models.Model):
Order_number = models.CharField(max_length=25,unique = True, blank = True, null = True)
style_name = models.CharField(max_length=15, blank = True, null = True)
color = models.CharField(max_length=15, blank = True, null = True)
Order_qty = models.PositiveIntegerField()
SMV = models.FloatField()
MERCHANT = models.ForeignKey(UserProfileInfo,on_delete= models.CASCADE,default='Select')
def __str__(self):
return self.Order_number
我现在已经创建了一个外键,但我不需要它,它也不会在下拉列表中只列出商家的名字 我认为您可以通过以下方式完成此操作:
当尝试迁移时,我得到了“以10为基数的int()的无效文本”。在添加此表单之前,我可以迁移。我还将所有整数字段替换为FloatField,但它没有解决错误
class ProductForm(forms.ModelForm): # please use CamelCase when defining Class Names
MERCHANT = forms.ModelChoiceField(queryset=UserProfileInfo.objects.filter(Designation=UserProfileInfo.MARCHENT)) # Please use sname_case when naming attributes
class Meta:
model = Product_definition # Please use CamelCase when defining model class name
fields = '__all__'