我的模特是
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)
答案 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中的缩进是错误的。字段应该跳进去。
我希望这一切。但我本可以错过一两件事。如果您收到错误,请在您的问题中提供回溯。