如何将两个单独输入的值传递到 Django 表单的内容字段中?

sgt_pepper85

在我的模板中,我有一个表单,其中包含两个输入元素,其值可以使用 javascript 进行调整。我希望能够获取这些值,并在表单提交时将它们显示在下面的 for 循环中的句子中。

索引.html:

<form action="{% url 'workouts:workout' %}" method="post">
    {% csrf_token %}
    <div class="weight">
        <h4>WEIGHT (kgs):</h4>
        <button type="button" class="weight-dec">-</button>
        <input type="text" value="0" class="weight-qty-box" readonly="" name="one">
        <button type="button" class="weight-inc">+</button>
    </div>
    <div class="reps">
        <h4>REPS:</h4>
        <button type="button" class="rep-dec">-</button>
        <input type="text" value="0" class="rep-qty-box" readonly="" name="two">
        <button type="button" class="rep-inc">+</button>
    </div>
    <input type="submit" value="Save" name="submit_workout">
    <input type="reset" value="Clear">
</form>

{% if exercise.workout_set.all %}
    {% for w in exercise.workout_set.all %}
        {{ w.content }}
    {% endfor %}
{% endif %}

我在上面的表单中为映射到视图的 url 提供了一个 action 属性,并且每个输入都有一个名称,以便在视图中访问它们的值。我也在forms.py中写了这个表格:

class WorkoutModelForm(forms.ModelForm):
    class Meta:
        model = Workout
        fields = ['content']

对于上下文,这是我的模型:

class Workout(models.Model):
    content = models.CharField(max_length=50)
    created = models.DateField(auto_now_add=True)
    updated = models.DateField(auto_now=True)
    exercise = models.ForeignKey(Exercise, on_delete=models.CASCADE, default=None)

    class Meta:
        ordering = ('created',)

我的问题是我不知道如何将我的模型表单实际合并到我的模板中,或者如何编写一个视图来执行我想要的操作。我对此还是个新手,并且一直在寻找答案,但到目前为止还没有找到。请帮忙。

马文腰带

这能够帮助您,您应该首先查看 django Class-Based Views,更具体地说是FormView,django 已经具有能够处理发布在表单上的数据的通用视图。您的代码如下所示:

# forms.py
# imports ...
class WorkoutModelForm(forms.ModelForm):
    class Meta:
        model = Workout
        fields = ['content']


# urls.py
from django.urls import path
from . import views
app_name = 'myapp'

urlpatterns = [
    path("test-form/", views.TesteFormView.as_view(), name='test-form'),
]


# views.py
from django.views.generic import FormView
from myapp import forms
from django.contrib import messages

class TesteFormView(FormView):
    template_name = "myapp/index.html"
    success_url = reverse_lazy('myapp:test-form')
    form_class = forms.WorkoutModelForm

    def get(self, request, *args, **kwargs):
        return super(TesteFormView, self).get(request, *args, **kwargs)

    def form_valid(self, form):
        print(f"POST DATA =  {self.request.POST}") # debug
        content = form.cleaned_data.get('content')
        # fieldx= form.cleaned_data.get('fieldx')
        # do something whit this fields like :
        Workout.object.create(content=content)
        messages.success(self.request,"New workout object created")

        return super(TesteFormView, self).form_valid(form=self.get_form())

    def form_invalid(self, form):
        print(f"POST DATA =  {self.request.POST}") # debug
        for key in form.errors:
            messages.error(self.request, form.errors[key])
        return super(TesteFormView, self).form_invalid(form=self.get_form())

你的模板看起来像:

# myapp/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TestForm</title>
</head>
<body>
<form method="post">
    {% csrf_token %}
    {{ form }}
    <button type="submit">submit</button>
</form>
</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Django框架的表单字段中获取价值?

如何使用Django在表单中创建自动完成输入字段

如何在django表单中包含id字段?

Django-如何将值从现有的HTML表单传递到列表视图

Django表单未在模板中呈现输入字段

如何在Django中的表单中添加GenericRelation字段

如何将选择动态传递到Django表单

如何在Django中命名自定义表单的字段?

如何将值从视图传递到不可编辑的字段django pyhton

如何将两个Django数据库字段的百分比作为模板标记传递

我如何传递两个值到jQuery滑块中的Django后端?

如何订购在Django中动态创建的模型表单字段

如何将字段属性值传递给Django表单字段错误消息

如何在Django表单中设置不必要的字段?

如何将单独的FOCUS样式应用于两个输入字段

如何处理Django表单中的“现在自动”字段?

仅显示Django中类表单的字段值

在模板中循环模型时,如何将唯一 id 字段从模型传递到 Django 表单?

Django 中的两个表单-如何在没有所有字段的情况下使表单可提交?

如何将数据从一个输入字段提供给 Django 生成表单的两个输入字段?

如果空值传递给 Django 中的表单字段,如何验证表单?

如何指定表单中字段的顺序?[django-脆皮形式]

如何从 Django 模板中的两个相关模型表单查询字段?

如何清除 Django 表单中的图像字段?

如何从 Django 中的特定表单中获取字段类?

如何在 Django 表单中添加可搜索的选择字段

如何从 Django 的表单中显示模型的所有字段值?

如何将excel中两个单独工作表中的每个值平均到第三个工作表中

将模型中的一个字段拆分为 django 更新视图上的两个表单输入字段