Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,Django:有没有一种方法可以在一个模板中编辑多个数据集_Python_Django_Database_Forms - Fatal编程技术网

Python,Django:有没有一种方法可以在一个模板中编辑多个数据集

Python,Django:有没有一种方法可以在一个模板中编辑多个数据集,python,django,database,forms,Python,Django,Database,Forms,晚上好, 我想知道,在django中,是否有一种实用的甚至是最好的方法可以在一个模板中编辑多个但可变的数据集 下面是一个可以解释我的问题的例子: 用户创建一个对象并定义不断变化的子对象数量 class Object(models.Model): name = models.CharField(max_length=50, null=False, blank=False) sub_objects = models.IntegerField(default=1, validators

晚上好,

我想知道,在django中,是否有一种实用的甚至是最好的方法可以在一个模板中编辑多个但可变的数据集

下面是一个可以解释我的问题的例子:

  • 用户创建一个对象并定义不断变化的子对象数量

    class Object(models.Model):
        name = models.CharField(max_length=50, null=False, blank=False)
        sub_objects = models.IntegerField(default=1, validators=[MaxValueValidator(12), MinValueValidator(1)])
        date_created = models.DateField(auto_now_add=True)
    
  • 子对象将在后台创建,名称以特定模式(Objectname_A1、Objectname_A2、Objectname_A3等)命名,但附加数据为空。用户在创建对象时不知道此附加数据,必须在以后填充

     class Subobject(models.Model):
         parent = models.ForeignKey(Object, null=False, blank=False, on_delete=models.CASCADE)
         name = models.CharField(max_length=50, null=False, blank=False)
         additional_data_a = models...
         additional_data_b = models...
         additional_data_c = models...
         additional_data_d = models...
         date_created = models.DateField(auto_now_add=True)
    
  • 现在:

    通常,用户拥有多个SubjectObject的信息,当然我可以让他/她分别跳入每个数据集并填写缺少的数据……但是没有更好/更有效的方法吗?是否有一种方法(如果有多种方法,哪种方法最好)可以在一个模板中向用户显示一个对象的所有子对象,并让用户编辑它们


    希望有人能想出解决我问题的办法!?晚安

    我不确定这个想法对你来说是否足够实用,但它是我喜欢使用的,而且很简单!在html中,当打印数据集时,可以使用它们的ID命名它们。。。比如,

    {% for object in dataset %}
    
    <input name="name{{object.id}}" type="text" /> Name of the object
    <input name="additional_data_a{{object.id}}" type="text"/>  Additional data a of the object
    
    {% endfor %}
    
    {%用于数据集中的对象%}
    对象的名称
    对象的附加数据a
    {%endfor%}
    
    之后,在您的视图中,您可以获取request.POST元素,例如,获取以附加数据开头的元素,并将其拆分。因此,您将拥有元素的id,并且您将知道您必须更新的元素附加数据。试试这个方法,如果你有什么不明白的地方,请告诉我。希望它能帮助你:)