我有两个模型。一个是“任务”,另一个是“条目”,我可以在 Django 管理面板中查看为每个任务创建的所有条目的概述。我想为登录用户创建一个类似的页面,以显示他在 db 中创建的条目。
我试图通过使用 LogEntry 类的日志数据来获取它们,但我坚持下去。有人知道一种有效的方法吗?
我有以下型号
class Profile(models.Model):
# Relations
user = models.OneToOneField(
User,
related_name="profile",
verbose_name=_("user")
)
# Attributes - Mandatory
interaction = models.PositiveIntegerField(
default=0,
verbose_name=_("interaction")
)
inter_time = models.DateTimeField(auto_now=True)
# Attributes - Optional
# Object Manager
objects = managers.ProfileManager()
# Custom Properties
@property
def username(self):
return self.user.username
# Meta and String
class Meta:
verbose_name = _("Profile")
verbose_name_plural = _("Profiles")
ordering = ("user",)
def __str__(self):
return self.user.username
#@receiver(post_save, sender=settings.AUTH_USER_MODEL)
@receiver(post_save, sender=User)
def create_profile_for_new_user(sender, created, instance, **kwargs):
if created:
profile = Profile(user=instance)
profile.save()
def login_user(sender, request, user, **kwargs):
user.profile.interaction += 1
user.profile.save()
user_logged_in.connect(login_user)
class Task(models.Model):
task_name = models.CharField(max_length=250)
task_time = models.DecimalField(max_digits=3, decimal_places=2)
def __unicode__(self):
return self.task_name
# Object Manager
#objects = managers.TaskManager()
# Meta and String
class Meta:
verbose_name = _("Task")
verbose_name_plural = _("Tasks")
class Entry(models.Model):
select_task = models.ForeignKey(Task, related_name="entries")
entry_quantity = models.IntegerField(default=0)
entry_date = models.DateField('Task performed date')
publication_date = models.DateField(auto_now_add=True)
def __unicode__(self):
return u'%s' % self.entry_quantity
# Object Manager
#objects = managers.EntryManager()
# Meta and String
class Meta:
verbose_name = _("Entry")
verbose_name_plural = _("Entries")
这就是我在管理员中所拥有的。我希望在用户个人资料页面中为每个用户提供类似的内容(仅显示该用户所做的条目)。由于产品不属于我,我不得不跨越任务。
