2010-08-20 2 views
1

Я прилагаю TestInline в FoobarAdmin, эта вещь работает хорошо, но я хочу войти в системе пользователя, чтобы быть предварительно заполненным для поля added_byПроблемы с Django Встраиваемых формами

from django.contrib import admin 
from django.contrib.auth.models import User 

class Test(models.Model): 

    description = models.TextField() 
    added_on = models.DateTimeField(auto_now_add=True) 
    added_by = models.ForeignKey(User, related_name='added_by',) 

class TestInline(admin.TabularInline): 
     model = Test 
     extra = 1 

class FoobarAdmin(admin.ModelAdmin): 
    inlines = [TestInline,] 

admin.site.register(Foobar, FoobarAdmin) 

Пожалуйста, дайте мне знать, если его можно предварительно добавили пользователя для поля added_by

ответ

1

См. prepopulated_fields в документах администратора.

Если я правильно понимаю, что вам нужно, я думаю, this article by James Bennett решает проблему довольно хорошо.

И наконец (в случае, если вы их не видели), есть two otherinformative posts на предополняющих полях администратора.

+0

Я уже проверил, но проблема добавлена__поля является пользователем foreignKey, а в документах указано, что «prepopulated_fields не принимает поля DateTimeField, ForeignKey и ManyToManyField». Не могли бы вы мне помочь? – Suhail

+0

Кажется, предпочтительным способом является переопределение соответствующей формы администратора с помощью той, которая использует Javascript/JQuery, чтобы делать то, что вам нужно. На этом есть несколько сообщений StackOverflow, и вот что кажется наиболее полезным: http://stackoverflow.com/questions/2799857/filtering-foreign-keys-with-ajax-in-django-admin –

+0

Однако (и я раю 't попробовал это, так что просто интересно), возможно, вы могли бы попробовать использовать' default 'вместо: http://docs.djangoproject.com/en/dev/ref/models/fields/#default –

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