简体   繁体   English

Django从ModelChoiceField中排除ForeignKey字段

[英]Django Exclude ForeignKey field from ModelChoiceField

I have two models: 我有两个模型:

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

class Driver(Model):
    vehicle = models.ForeignKey(Vehicle, related_name='owned_vehicle')
    name = models.CharField(max_length=100)

now on my forms.py: 现在在我的forms.py上:

class MyForm(forms.Form):
    drivers = Driver.objects.order_by('name')
    drivers_list = forms.ModelChoiceField(drivers, empty_label='* Driver *', label='Driver')

The problem is drivers_list also includes the vehicles in the list. 问题是drivers_list也将vehicles包括在列表中。 How can I prevent this form from including the ForeignKey field into the ModelChoiceField? 如何防止此表单将ForeignKey字段包含在ModelChoiceField中?

Why are you not using model form for drivers, 为什么不将模型表格用于驱动程序,

class DriverForm(forms.ModelForm):
    class Meta:
        model = Article
        fields = ['name', 'vehicle']

For your own forms, 对于您自己的形式,

class MyForm(forms.Form):
    driver_list = forms.ModelChoiceField(queryset=Driver.objects.order_by('name'))
    # then other attributes which you want to map with driver

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM