首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django在Django-forms中传递表单的值

Django在Django-forms中传递表单的值
EN

Stack Overflow用户
提问于 2020-05-23 02:01:34
回答 1查看 48关注 0票数 0

我有两个模型WorkoutCategoryworkout与ForeignKey与workout_Category在catig

在我的模板中,我有一个折叠的div "WorkoutCategory“包括一个折叠表单”要保存在workout模型中。

问题是,如果catig_id没有包含在表单中,我应该如何传递它

下面的截图可以简化我的想法

词范畴和形式的折叠div

模型:

代码语言:javascript
复制
from django.db import models

# Create your models here.

class WorkoutCategory(models.Model):
name = models.CharField(max_length=100)

def __str__(self):
    return self.name

class Workout(models.Model):
catig = models.ForeignKey(WorkoutCategory,null=True, on_delete=models.CASCADE)
workout_name = models.CharField(max_length=250)
video_link = models.CharField(max_length=300)

def __str__(self):
    return self.workout_name

表格:

代码语言:javascript
复制
from django.forms import *
from .models import *
from django import forms


class CreateWorkoutForm(ModelForm):
class Meta:
    model = Workout
    exclude = ['catig']
    widgets = {
    'workout_name' : forms.TextInput(attrs={'class':'form-control','placeholder':'Workout Name'}),
    'video_link' : forms.URLInput(attrs={'class':'form-control','placeholder':'https://www.youtube.com/ ...'}),

    }

模板:

代码语言:javascript
复制
{% for catg in allcetgs %}
<br>
<div class="card-header" data-toggle="collapse"    href="#multiCollapseExample{{catg.id}}" role="button" aria- expanded="false" aria-controls="multiCollapseExample{{catg.id}}">
        {{catg.name}}</div>
 <div class="row">
<div class="col">

  <div class="collapse multi-collapse" id="multiCollapseExample{{catg.id}}">
    <div class="col">
        <br>
        <div class="btn btn-success" data-toggle="collapse" href="#addingworkout{{catg.id}}" role="button" aria-expanded="false" aria-controls="addingworkout{{catg.id}}" style="float: right;">add workout</div>
        <br>            <br>

    <div class="collapse multi-collapse" id="addingworkout{{catg.id}}" >
        <form method="POST" action="">
            {% csrf_token %}
                <div class="form-row">
                <div class="col">
                    {{workoutForm.workout_name}}
                </div>
                  <div class="col">
                    {{workoutForm.video_link}}
                </div>
                  <button type="submit" class="btn btn-primary">Save</button>
                </div>
              </form>
          </div>
    </div>
    <br>

    <table class="table">
        <thead>
          <tr>
            <th scope="col">Workout Name</th>
            <th scope="col">Youtube Link</th>
          </tr>
        </thead>
        <tbody>
        {% for wkout in catg.workout_set.all %}
          <tr>
            <td>{{wkout.workout_name}}</td>
            <td><a href="{{wkout.video_link}}">check video</a></td>
          </tr>
          {% endfor %}
        </tbody>
      </table>
  </div>

我不希望用户设置catig_id,因为它已经是表单的父div。如何传递这个catig_id值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 02:17:40

代码语言:javascript
复制
# You don't need to exclude the catig field in your form

class CreateWorkoutForm(ModelForm):
class Meta:
    model = Workout
    widgets = {
    'workout_name' : forms.TextInput(attrs={'class':'form-control','placeholder':'Workout Name'}),
    'video_link' : forms.URLInput(attrs={'class':'form-control','placeholder':'https://www.youtube.com/ ...'}),

    }

# you can have the value of catig_id in the hidden input

<div class="collapse multi-collapse" id="addingworkout{{catg.id}}" value="{{catg.id}}">
    <form id="addingworkout">
        <div class="form-row">
        <input type="hidden" name="catig" value="{{catg.id}}">
            <div class="col">
                {{workoutForm.workout_name}}
            </div>
            <div class="col">
                {{workoutForm.video_link}}
            </div>
            <button type="submit" class="btn btn-primary">Save</button>
        </div>
      </form>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61966534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档