DJANGO:如何使用包含order_by的模型创建管理视图?

时间:2015-02-12 15:58:43

标签: django view filter admin

我的模特是

Class Document(models.Model):
    Contrat = Contrat.objects.order_by('Contrat_text').distinct('Contrat_text')
    isContrat = models.BooleanField(('Contrat'), default=True)
    isCdC = models.BooleanField(('Cahier des Charges'), default=False)
    isCR = models.BooleanField(('Cahier de Recette'), default=False)
    isPG = models.BooleanField(('PG'), default=False)
    isCI = models.BooleanField(('CI'), default=False)
    isDico = models.BooleanField(('Dictionnaire'), default=False)
    isSFG = models.BooleanField(('SFG'), default=False)
    isGuide = models.BooleanField(('Guide'), default=False)
    isWSDL = models.BooleanField(('WSDL'), default=False)
    isDivers = models.BooleanField(('Divers'), default=False)

    def __str__(self):
            return self.Contrat

如何使用相同的过滤器创建管理视图?

class DocumentAdmin(admin.ModelAdmin):
fields = ('Contrat', 'isContrat', 'isCdC', 'isCR', 'isPG', 'isCI', 'isDico', 'isSFG', 'isGuide', 'isWSDL', 'isDivers')
list_display = ('Contrat', 'isContrat', 'isCdC', 'isCR', 'isPG', 'isCI', 'isDico', 'isSFG', 'isGuide', 'isWSDL', 'isDivers')
ordering = ('id',)

admin.site.register(Document,DocumentAdmin)

1 个答案:

答案 0 :(得分:0)

查看模型元排序:https://docs.djangoproject.com/en/1.7/ref/models/options/#ordering

class Item(models.Model):
    field_x = SomeField()
    field_y = SomeOtherField()

    class Meta:
        ordering = ['field_x']

不要在您的ModelAdmin或查询上指定排序。模型上的排序字段将是默认值。

更新

您的代码至少出现以下问题:

1)Class是小写的C.所以class

2)查询未在模型中 。但在视图和管理员等中删除:Contrat = Contrat.objects.order_by('Contrat_text').distinct('Contrat_text')

3)De __str__用于给出对象的字符串表示。在self.Contract你查询一些其他对象。它没有意义。删除:def __str__(self): return self.Contrat

4)字段标题应该是字符串而不是元组。 ('Contrat')应该是'Contrat',删除所有这些括号......也许如果您使用gettext,它应该是_('Contract')。但我怀疑你是否尝试使用国际化和本地化。

5)BooleanField默认为False,因此请删除所有default=False

6)modelAdmin中的缩进是错误的。字段应该跳进去。

我希望这一切。但我本可以错过一两件事。如果您收到错误,请在您的问题中提供回溯。