从登录用户预填充管理字段

时间:2010-10-21 11:34:56

标签: django django-admin

如何从登录的用户信息中预填充管理员字段?

我有model.py:

from django.db import models  
class News(models.Model):  
    title = models.CharField(max_length=65)  
    body = models.TextField()  
    author = models.CharField(max_length=55)  

我有admin.py:

from django.contrib import admin
from django.contrib.auth.models import User
from newsite.news.models import News
class NewsAdmin(admin.ModelAdmin):
    list_display = ('title','author')
    search_fields = ['title', 'author']
    prepopulated_fields = {'author': (?????)} 
admin.site.register(News, NewsAdmin)

我一直在努力弄清楚如何让当前登录的用户进入作者的prepopulated_field。

任何提示将不胜感激。感谢。

1 个答案:

答案 0 :(得分:4)

我的models.py就是这样:

author = models.ForeignKey(User)

Admin.py是这样的:

class BugAdmin( admin.ModelAdmin ):
    fields = ['name', 'slug', 'summary', 'categories', 'status', 'browser', 'frequency', 'really_bug']
    exclude = ('author','excerpt')
    prepopulated_fields = { 'slug' : ['name'] }
    form = BugForm

    def save_form(self, request, form, change):
        obj = super( BugAdmin, self).save_form(request, form, change)
        if not change:
            obj.author = request.user
        return obj