在django管理员列表显示中显示帖子的所有者

在django管理员列表显示中显示帖子的所有者,django,django-models,django-admin,Django,Django Models,Django Admin,我的模型是这样的: class Activity(models.Model): sub_choice = ((1, 'English'), (2, 'Math'), (3, 'Physics'), (4, 'Chemistry')) subject = models.IntegerField(choices=sub_choice, default=1, max_length=50) hours = models.IntegerField

我的模型是这样的:

class Activity(models.Model):
    sub_choice = ((1, 'English'), (2, 'Math'),
                  (3, 'Physics'), (4, 'Chemistry'))
    subject = models.IntegerField(choices=sub_choice, default=1, max_length=50)
    hours = models.IntegerField(verbose_name='Time spent in hours', default=0)
class ActivityAdmin(ModelAdmin):
    list_display = ('subject', 'hours')

admin.site.register(Activity, ActivityAdmin)
我的admin.py如下所示:

class Activity(models.Model):
    sub_choice = ((1, 'English'), (2, 'Math'),
                  (3, 'Physics'), (4, 'Chemistry'))
    subject = models.IntegerField(choices=sub_choice, default=1, max_length=50)
    hours = models.IntegerField(verbose_name='Time spent in hours', default=0)
class ActivityAdmin(ModelAdmin):
    list_display = ('subject', 'hours')

admin.site.register(Activity, ActivityAdmin)
在我的列表显示中,我还需要创建某个活动的用户的名字。如何做到这一点,而无需明确要求活动的创建者将他们的名字放入表单中。是否有任何方法可以使用自定义函数从用户模型中获取此信息?

尝试使用用户模型

models.py

from django.contrib.auth.models import User

    class Activity(models.Model):
        sub_choice = ((1, 'English'), (2, 'Math'),
                      (3, 'Physics'), (4, 'Chemistry'))
        subject = models.IntegerField(choices=sub_choice, default=1, max_length=50)
        hours = models.IntegerField(verbose_name='Time spent in hours', default=0)
        owner = models.ForeignKeyField(User)
管理员

    class ActivityAdmin(ModelAdmin):
        list_display = ('subject', 'hours', 'owner')
        exclude = ['owner']

        def save_model(self, request, obj, form, change):
            """
            Given a model instance save it to the database.
            """
            obj.owner = request.user
            obj.save()

admin.site.register(Activity, ActivityAdmin)

活动
用户
之间没有关系。你怎么知道是谁创建了哪个活动?只有管理员中具有staff状态的用户才能创建活动..例如,管理员日志中有关于哪个用户创建了什么条目的清晰条目..我只想在列表显示中直接显示谁创建了某个活动,而不需要用户填写该字段..@falsetru谢谢。更新。@wolendranh..这并不能解决我的问题..所有者字段以下拉列表的形式显示在活动模型中,允许用户选择任何人作为所有者..我真正想要的是禁止这样做,并在列表中显示所有者字段,仅基于登录并创建所有者的用户显示activity@Amistad当您保存活动实例时,它将有1个用户,这些用户将来自例如request.user。此活动将只显示一个用户。是的..我认为request.user是我想要的..但是..我在您的回答中看不到这一点..这对您的answer@Amistad如何添加此活动?在用户界面上使用表单还是使用管理员?