【问题标题】:Data not getting inserted in db in django数据没有被插入到 django 的 db 中
【发布时间】:2018-04-17 00:30:15
【问题描述】:

您好,我正在尝试从下拉列表中选择数据,然后将其保存在类别模型中。检索数据没有问题,但是当我使用 Category.objects.all() 检查它时,我得到了这个

<QuerySet [<Category: Category object>, <Category: Category object>, <Category: Category object>, <Category: Category object>]>

models.py:

from __future__ import unicode_literals

from django.db import models

from django.contrib.auth.models import User


class Category(models.Model):

    user = models.ForeignKey(User)
    category= models.CharField(max_length=100)

views.py:

    def get_category(request):

    cname = request.POST.get("dropdown1")
    user = request.session.get('user')
    obj=Category(user_id=user,category=cname)
    obj.save()
    return HttpResponse("Registeration succesfull")

使用get_category,我正在尝试保存从下拉列表中选择的条目。它工作正常,但我猜数据库中没有存储任何内容。

我试过运行这个

Category.objects.get(category = "abc")
I get this error:

DoesNotExist: Category matching query does not exist.

有人可以判断这是否不是在 db 中插入数据的正确方法。

【问题讨论】:

  • 尝试在 obj.save() 之前打印 cname 和 user 并检查你得到了什么
  • @Exprator 它打印从下拉列表和用户 ID 中选择的数据
  • 打印后能不能显示数据
  • @Exprator Netowrks 66-> 这是我打印 cname 和 user 后得到的结果
  • 如果类别名称以 Networks 的形式出现,您将如何获得名为 abc 的类别名称??

标签: django database django-models django-views


【解决方案1】:

您正在 Category.objects.all() 中获取类别对象,因为您没有为实例指定任何字符串或 unicode 名称。 在您的模型中附加这些

class Category(models.Model):

    user = models.ForeignKey(User)
    category= models.CharField(max_length=100)

    def __str__(self):
       return self.category

您也可以将__str__ 替换为__unicode__ 现在类别名称将在查询集中可见。

【讨论】:

  • 如果这对您有帮助,请点赞并标记为真实。谢谢@swati_singh
猜你喜欢
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多