Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 模型形式';s外键下拉框不按字母顺序排列_Django_Python 3.x - Fatal编程技术网

Django 模型形式';s外键下拉框不按字母顺序排列

Django 模型形式';s外键下拉框不按字母顺序排列,django,python-3.x,Django,Python 3.x,我在“ReviewComments”模型中创建了一个外键字段,并包含了命令“order\u with\u respect\u to”。但是,网页中出现的下拉框不会按字母顺序对服务提供商进行排序。代码是否缺少某些内容 Models.py class ServiceProvider(models.Model): identification_number = models.AutoField(primary_key=True, ) license_number = models.Ch

我在“ReviewComments”模型中创建了一个外键字段,并包含了命令“order\u with\u respect\u to”。但是,网页中出现的下拉框不会按字母顺序对服务提供商进行排序。代码是否缺少某些内容

Models.py

class ServiceProvider(models.Model):
    identification_number = models.AutoField(primary_key=True, )
    license_number = models.CharField(max_length=10, null=True, blank=True, )
    individual_name = models.CharField(max_length=60, )
    corporate_name = models.CharField(max_length=120, )
    reg_address = models.CharField(max_length=180, )
    email_address = models.EmailField(max_length=254, null=True, blank=True, )
    land_line = models.CharField(max_length=50, null=True, )
    hand_phone_line = models.CharField(max_length=50, null=True, blank=True, )
    service_type = models.CharField(max_length=20)

    def __str__(self):
        return "%s (%s)" % (self.individual_name, self.service_type)

class ReviewComments(models.Model):
    comment_id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=120)
    comment = models.CharField(max_length=250)
    receipt_document = models.FileField(upload_to='receipt_document', default=None, )
    service_provider = models.ForeignKey(ServiceProvider, on_delete=models.CASCADE)
    user_id = models.CharField(max_length=10, null=True, blank=True, )

    class Meta:
        order_with_respect_to = 'service_provider'

    def __str__(self):
        return self.title + "\n" + self.comment
Forms.py

class ReviewForm(ModelForm):
    class Meta:
        model = ReviewComments
        fields = ['title', 'comment', 'service_provider', 'receipt_document', ]
        widgets = {
            'title': Textarea(attrs={'cols': 80, 'rows': 1}),
            'comment': Textarea(attrs={'cols': 80, 'rows': 10}),
        }

order\u尊重
不是你想要的。它将根据相应的
服务提供商
,对您的
评论内容
进行排序-它不会改变
服务提供商
的顺序

如果希望按字母顺序列出服务提供商,则需要在
ServiceProvider
模型上设置默认值,指定要按哪个字段排序:

class ServiceProvider(models.Model):

    # ...

    class Meta:
        ordering = ['individual_name']

谢谢这让我快发疯了!