【问题标题】:Save checkbox values from csv django从 csv django 保存复选框值
【发布时间】:2019-10-01 09:57:47
【问题描述】:

我有这种格式的 CSV 文件

我可以动态地将数据放入该字段。如何将此数据保存到数据库中,以便我可以轻松地以复选框的形式显示。并使用此 csv 将数据保存到模型中。

我的模型是这样的

restaurant = models.OneToOneField(User, on_delete=models.CASCADE)
    ArticleName = models.CharField(max_length=50, null=False, blank=False)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    Category = models.CharField(max_length=50, null=False, blank=False)
    Pickuptax = models.FloatField(null=True, blank=True, default=None)
    Ingredient = models.CharField(max_length=100)   //As I can't assign static choice fields here.

【问题讨论】:

    标签: django python-3.x django-models


    【解决方案1】:

    您可以使用模型作为成分和ManyToManyField

    像这样创建一个成分模型:

    class Ingredient(models.Model):
        name = CharField(max_length=255, unique=True)
    

    然后将您的成分字段更改为:

    Ingredients = models.ManyToManyField(Ingredient)
    

    然后你可以像这样在文章中添加成分:

    def add_ingredient(article, name):
        ingredient = Ingredient.objects.get_or_create(name=name)
        article.Ingredients.add(ingredient)
        article.save()
    

    顺便说一句,你不应该为成员变量使用大写的名字,所以不要使用ArticleName,而是使用article_name。大写命名仅适用于类

    【讨论】:

    • 感谢您的好建议。你能告诉我如何从 csv 中保存它吗?作为它现在的多对多关系以及从 csv 我将如何得到这个。
    • 这取决于您如何导入 CSV,您是否为此使用了某种库?
    • 不,我正在使用pythoncircle.com/post/30/… 中提到的方法,但我现在在这个领域遇到了问题
    猜你喜欢
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2016-05-20
    • 2019-02-11
    • 2021-01-10
    相关资源
    最近更新 更多