【问题标题】:django ModelForm extra fielddjango ModelForm 额外字段
【发布时间】:2021-02-05 00:13:08
【问题描述】:

我希望在 modelForm 中有额外的字段。从这个额外的字段中,我想在保存时将值传递给模型中的字段。这是我想要得到的例子

希望在random name 字段中生成名称,并以name 保存到数据库中

models.py

from django.db import models


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

    def __str__(self):
        return self.name

forms.py

from django import forms
from .models import test2App


class TestForm(forms.ModelForm):
    class Meta:
        model = Test2App
        fields = ['name']

Views.py

def add_name(request):
    if request.method == 'POST':
        form = TestForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('test_name')
    else:
        form = TestForm()

    return render(request, 'test/add.html', {'form': form})

html

  <form method="post">
    {% csrf_token %}
    <label for="name">Random Name</label>
    <button>Generate</button>
                    <input id="name" name="name_test">
    {{ form}}

    <input type="submit" value="Submit">
</form>

【问题讨论】:

    标签: python django forms


    【解决方案1】:
    def add_name(request):
    if request.method == 'POST':
        form = TestForm(request.POST)
        name1 = request.POST.get('name_test')
    
        print(name1)
        if form.is_valid():
            form.instance.name = name1
            form.save()
            return redirect('test_name')
    else:
        form = TestForm()
    
    return render(request, 'test/add.html', {'form': form})
    

    【讨论】:

    • 得到了解决方案
    猜你喜欢
    • 2015-08-26
    • 2011-01-14
    • 1970-01-01
    • 2012-11-13
    • 2014-08-15
    • 2021-01-22
    • 1970-01-01
    • 2014-09-02
    • 2017-04-02
    相关资源
    最近更新 更多