我正在尝试将Models.Manager中新条目的新创建的id传递给视图,以便将其保存为变量。
views.py
def save_form(request):
item_a = request.POST['item_a']
item_b = request.POST['item_b']
Items.objects.save(item_a, item_b)
print (saved.id)
return redirect ((reverse('project:index')))
models.py
class ItemsManager(models.Manager):
def save(self, item_a, item_b)
item_a = item_a
item_b = item_b
saved= Items.objects.create(
item_a = item_a,
item_b = item_b)
return (True, saved)
class Items(models.Model):
item_a=models.CharField(max_length=255)
item_b=models.CharField(max_length=255)
objects = ItemsManager()
我想做的是获取已保存条目的ID,并将其发送到视图。
我尝试在模型管理器上使用return saved
,return saved.id
和return save.id
将其传递给视图。现在,我将其命名为True, saved
,因为这是我阅读几篇文章后收集的正确方法。但是,当我进入视图时,我没有得到想要的ID。在视图中尝试print (saved.id)
时,我得到:
NameError:未定义名称“保存”
我也在视图if save = [0]: print(saved.id)
中尝试过,并且得到:
如果保存= [0] ^ SyntaxError:语法无效
现在,我只是尝试打印,但是一旦我知道该值将它添加到视图中,就将id保存为变量。
我也尝试过if save = True
如何将新创建的id从models.Manager传递到视图?
任何帮助将不胜感激。
更新
现在我将views.py更改为:
def save_form(request):
item_a = request.POST['item_a']
item_b = request.POST['item_b']
Items.objects.save(item_a, item_b)
if save == True:
print("hello")
else:
print ("bad luck!)
return redirect ((reverse('project:index')))
它将条目保存在数据库中并返回“不幸”。因此,保存在某种程度上不是== True。
答案 0 :(得分:0)
我需要更具体地说明我的变量。
models.py
class ItemsManager(models.Manager):
def save(self, item_a, item_b)
item_a = item_a
item_b = item_b
saved= Items.objects.create(
item_a = item_a,
item_b = item_b)
return (saved.id)
class Items(models.Model):
item_a=models.CharField(max_length=255)
item_b=models.CharField(max_length=255)
objects = ItemsManager()
views.py
def save_form(request):
item_a = request.POST['item_a']
item_b = request.POST['item_b']
save = Items.objects.save(item_a, item_b)
print (save)
return redirect ((reverse('project:index')))
在使用return saved.id
创建对象之后,我使用saved=Items.objects.create(...)
从模型传递了ID。然后在视图中使用print(save)
访问它,因为返回基于save=Items.objects.save...
。它给了我新创建条目的ID。