【问题标题】:Python, Django: Is there a way to edit multiple datasets in one templatePython,Django:有没有办法在一个模板中编辑多个数据集
【发布时间】:2021-05-28 08:58:30
【问题描述】:

晚上好,

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

这是一个可以解释我的问题/问题的示例:

  1. 用户创建了一个对象并定义了不断变化的子对象...

    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)
    
  2. 子对象将在后台创建,名称遵循特定模式(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)
    

现在:

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

希望有人对我的问题有想法或解决方案!?晚安!

【问题讨论】:

    标签: python django database forms


    【解决方案1】:

    我不确定这个想法对你来说是否足够实用,但我喜欢使用它并且很容易!在您的 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 %}
    

    之后,在您看来,您可以获得 request.POST 元素,例如获取以 additional_data_a 开头的元素并将其拆分。因此,您将拥有元素的 id,并且您会知道必须更新哪个元素 additional_data_a。试试这个方法,如果有什么不明白的地方告诉我。希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 1970-01-01
      • 2017-12-20
      • 2013-06-13
      • 1970-01-01
      • 2011-08-15
      • 2021-06-29
      • 2021-10-04
      • 1970-01-01
      相关资源
      最近更新 更多