【发布时间】:2025-05-25 18:30:02
【问题描述】:
是否可以使用 Django CreateView 将当前登录的用户 ID 检索到一个类中定义的函数中,在 views.py 中?
类似这样的:
class CreationClass(CreateView):
model = Mymodel
def creation(self, request):
if request.method == 'POST':
form = MyForm(request.POST or None)
if form.is_valid:
form = myForm()
user_id = self.request.user.id
rel_table = Item_id_user ( item_id = form.id, user_id = request.user.id)
rel_table.save() #<--- this does not save, even if table exists
return render(request, ''mypage.html')
这是我的models.py
class Item(models.Model):
id_user = models.ManyToManyField(User, related_name='user_item',
verbose_name='id utente', through='Item_id_user')
object = models.Manager()
# table to handle relationship
class Item_id_user(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
id = models.IntegerField(primary_key=True)
我想要实现的是存储到 Item_id_user 中,但根本没有存储任何内容。我以为问题出在request.user.id。
【问题讨论】:
-
好吧,这不是我的问题。无论如何,如果我在终端打印 user_id,我看不到值...我在想我写的内容有错误...
-
是的,我后来注意到并删除了我的答案。您可以按照您给出的示例使用它。如果 self.request 或 self.request.user 不可用,则会引发异常。
标签: python django sqlite model