2015-05-08 3 views
2

Думаю, я не повторяю вопрос, поскольку не могу найти ответ на мой вопрос.Django FieldError at/admin/app/modelClass/

Мой класс модели в models.py выглядит следующим образом:

class UserDetail(models.Model): 
    user = models.OneToOneField(User) 
    users = User.objects.all() 
    Instance_ID = models.CharField(max_length=10, unique=True) 
    Service_ID = models.CharField(max_length=15, unique=True) 

    Reference_ID = models.CharField(max_length=15, unique=True) 

и admin.py выглядит следующим образом:

class UserDetailAdmin(admin.ModelAdmin): 
    list_display = ('user','Instance_ID','Service_ID','Reference_ID') 
    search_fields = ('users__User','Instance_ID','Service_ID','Reference_ID') 

Как найти пользовательские поля? Если я попробую только «пользователь» или «user_id» в search_fields, я получаю следующую ошибку.

TypeError at /admin/app/UserDetail/ -----> "Related Field got invalid lookup: icontains"

и если я пытаюсь «User__users» или «users__User» или «пользователи» в search_fields, я получаю следующее сообщение об ошибке поля:

FieldError at /admin/app/UserDetail/ ----> "Cannot resolve keyword 'users' into field. Choices are: Reference_ID, Service_ID, Instance_ID, user, user_id"

, что я делаю неправильно? Может кто-то мне точку в правильном направлении

Благодаря

+0

Практически не рекомендуется иметь ссылку на поле как User.objects.all(). То, что вы, вероятно, хотите, - это представление, которое использует запрос в качестве поля поиска для пользователя, а затем вызывается User.objects.filter (username = queryparameter). –

+1

Да, я действительно удалил его сейчас. Я работаю только с «user = models.OneToOneField (User)» и полем поиска как «user__username» – nagsrk

ответ

0

Предполагая, что вы используете класс акций пользователя, «Пользователи» не является полем на этом классе, так что не будет работать.

Я думаю, что использование users__name в качестве поля поиска будет работать, но не проверено.

+0

Спасибо, чемпион @Jason, да, который решил мою проблему, но с небольшой коррекцией, он работал с «user__username», – nagsrk

Смежные вопросы