如何获取当前登录用户的ID?
在models.py:
class Game(models.model):
name = models.CharField(max_length=255)
owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner')
Run Code Online (Sandbox Code Playgroud)
在views.py:
gta = Game.objects.create(name="gta", owner=?)
Run Code Online (Sandbox Code Playgroud) 我正在使用存储一些额外的每用户信息AUTH_PROFILE_MODULE.
我们可以使用Django模板访问用户,{{ request.user }}但是我们如何访问配置文件中的字段,因为配置文件只能通过函数访问user.get_profile()?
是否真的需要每次都将配置文件明确传递到模板中?
我想request.user在savemodels.py 的方法中获取当前登录的user().我想检查用户的角色,看看它是否可以根据自己的角色执行某些操作.
models.py:
class TimeSheet(models.Model):
check_in_time = models.TimeField()
check_out_time = models.TimeField()
class Tasks(models.Model):
time_sheet = models.ForeignKey(TimeSheet)
project = models.ForeignKey(Project)
start_time = models.TimeField()
end_time = models.TimeField()
def save(self, *args,**kwargs):
project = SpentTime.objects.get(project__project__id = self.project.id)
start = datetime.datetime.strptime(str(self.start_time), '%H:%M:%S')
end = datetime.datetime.strptime(str(self.end_time), '%H:%M:%S')
time = float("{0:.2f}".format((end - start).seconds/3600.0))
if common.isDesigner(request.user):
SpentTime.objects.filter(project__project__id = self.project.id).update(design = float(project.design) + time)
if common.isDeveloper(request.user):
SpentTime.objects.filter(project__project__id = self.project.id).update(develop = float(project.develop) + time)
super(Tasks, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
这里的Tasks模型被用作Timesheet模型中的内联.我想检查当前登录用户的角色,并根据用户的角色更新另一个模型.在这里,我需要request.user检查当前用户的角色.我没有使用任何表单或模板,并完全使用Django管理员.有没有什么方法来获得request.user …
我有一个与之前解决的问题类似的问题,除了这个时间解决方案似乎不起作用:
如何在django admin中创建对象时自动插入当前用户?
以前我曾经覆盖save_model来标记提交文章的用户.现在我需要对评论做同样的事情,它似乎不再起作用了.
有人有主意吗?
非常感谢!
贾森