Я пытаюсь использовать свойство в моей модели как поле в django admin (1.2).
Вот пример моего кода:
class Case(models.Model):
reference = models.CharField(_(u'Reference'), max_length=70)
client_read = models.BooleanField(default=0)
def __unicode__(self):
return self.case_id
@property
def case_id(self):
""" unique case ID """
number = (settings.CASE_ID_LENGTH - len(str(self.id))) * "0" + str(self.id)
return '%(year)s%(unique_id)s' % {
'year': self.case_date.strftime("%y"),
'month': self.case_date.strftime("%m"),
'unique_id': number}
и частьadmin.py:
class OrderAdmin(ReadOnlyAdminFields, admin.ModelAdmin):
[...]
search_fields = ('id','case','req_surname','req_forename','req_company')
Я могу ссылаться на поле как 'case' (как указано в примере), но это дает мне TypeError: Related Field имеет недействительный поиск: icontains
Конечно, он работает со связанными полями: поэтому я могу использовать case__id , а затем я могу использовать идентификатор в качестве поискового запроса.Но это несколько раздражает пользователей, потому что caseid показывается по-другому.
Есть ли способ использовать case_id в качестве поискового запроса, как показано (год + месяц + идентификатор)?