How to set the current user on the model instance in the admin:

来源:互联网 发布:模拟灭火 算法 编辑:程序博客网 时间:2024/05/03 14:38
# app/models.pyfrom django.db import modelsfrom django.contrib.auth.models import Userclass Post(models.Model):    user = models.ForeignKey(User)    content = models.TextField()class Comment(models.Model):    post = models.ForeignKey(Post)    user = models.ForeignKey(User)    content = models.TextField()# app/admin.pyfrom app.models import Post, Commentfrom django.contrib import adminclass CommentInline(admin.TabularInline):    model = Comment    fields = ('content',)class PostAdmin(admin.ModelAdmin):    fields= ('content',)    inlines = [CommentInline]    def save_model(self, request, obj, form, change):         obj.user = request.user        obj.save()    def save_formset(self, request, form, formset, change):         if formset.model == Comment:            instances = formset.save(commit=False)            for instance in instances:                instance.user = request.user                instance.save()        else:            formset.save()admin.site.register(Post, PostAdmin)

原创粉丝点击