Django modelform不保存输入选项且不返回错误

Django modelform不保存输入选项且不返回错误,django,python-3.x,django-forms,Django,Python 3.x,Django Forms,我有一个模型表单,只有在所有字段都没有选择的情况下才能工作(将输入数据保存到数据库)。当我引入选项时,我没有收到任何错误,表单似乎有效,但没有保存任何内容。 我已经仔细阅读了文档,没有返回任何有用的内容 我确信我需要在视图中做更多的工作来获得所选的输入选项,或者我需要向模型类添加一些方法。请给我指一下正确的方向 这是我的模型: class OpeningHours(models.Model): ''' ''' class Meta: verbose_name = 'Ope

我有一个模型表单,只有在所有字段都没有选择的情况下才能工作(将输入数据保存到数据库)。当我引入选项时,我没有收到任何错误,表单似乎有效,但没有保存任何内容。 我已经仔细阅读了文档,没有返回任何有用的内容

我确信我需要在视图中做更多的工作来获得所选的输入选项,或者我需要向模型类添加一些方法。请给我指一下正确的方向

这是我的模型:

class OpeningHours(models.Model):
'''
'''
    class Meta:
        verbose_name = 'Opening Hour'
        verbose_name_plural = 'Opening Hours'
    #######################################################
    mytime = Bizhours()
    ################################################ 
    id = models.AutoField(primary_key=True)
    company =models.CharField(max_length=100, null=True, blank=True)
    weekday = models.CharField(max_length=100, choices=mytime.getweekdays(), default='Monday', null=True)
    fromHour = models.CharField(max_length=100, null=True, blank=True)
    fromMinute = models.CharField(max_length=100, null=True, blank=True)
    toHour = models.CharField(max_length=100, null=True, blank=True)
    toMinute = models.CharField(max_length=100, null=True, blank=True)
    '''
    id = models.AutoField(primary_key=True)
    company = models.ForeignKey(Company)
    weekday = models.IntegerField(choices=mytime.getweekdays())
    fromHour = models.TimeField(choices=mytime.gettime12())
    fromMinute = models.TimeField(choices=mytime.getminutes())
    toHour = models.TimeField(choices=mytime.gettime12())
    toMinute = models.TimeField(choices=mytime.getminutes())
    '''


    def __str__(self):
        return "%s %s (%s - %s)" % (self.company, self.weekday, self.fromHour, self.toHour)
以下是我的看法

@login_required
def addprofile(request):
current_user = request.user
#OpeningHoursFormSet = modelformset_factory(OpeningHours, form=OpeningHoursForm,extra=1)

if request.session['entry_count'] > 1:
    messages.success( request, 'You can only create two business profiles now' )
    return HttpResponseRedirect( reverse('home') )
else:
    if request.method == 'POST':
        form = OpeningHoursForm(request.POST)

        if form.is_valid():
            model_instance = form.save(commit=False)
            model_instance.company ="thiscompany"
            model_instance.weekday = request.POST.get('weekday') 
            model_instance.save()
        else:
            print("problems saving edited form")

        return HttpResponseRedirect('/bizprofile/success')
    else: 
        form = OpeningHoursForm() 
        context = {'form': form}    
    return render_to_response('bizprofile/addprofile.html', context, context_instance=RequestContext(request))
这是表格

{% extends "bizprofile/bizprofilebase.html" %}

{% block content %}

{% if form.subject.errors %}
<ol>
{% for error in form.subject.errors %}
    <li><strong>{{ error|escape }}</strong></li>
{% endfor %}
</ol>
{% endif %}

{% if user.is_authenticated %}
    <p>Welcome, {{ user.get_username }}. Thanks for logging in.</p>

    <form method="post" action="">
    {% csrf_token %}
    <table>
    {{form}}
    </table>
    <input type="submit" value="Submit Form"/>
    </form>

{% else %}
    <p>Welcome, new user. Please log in.</p>
{% endif %}
{% endblock %}
{%extends“bizprofile/bizprofilebase.html”%}
{%block content%}
{%if form.subject.errors%}
{form.subject.errors%中的错误为%s}
  • {{error | escape}}
  • {%endfor%} {%endif%} {%if user.u经过身份验证%} 欢迎,{{user.get_username}}。感谢您登录

    {%csrf_令牌%} {{form}} {%else%} 欢迎新用户。请登录

    {%endif%} {%endblock%}
    问题在于OP对工作日数据类型使用了
    CharField
    ,但函数返回的选项定义为整数。由于它们不兼容,因此无法保存数据。

    您的表单在哪里?这是模型表单集的一部分,但我已将其缩小到这个比例。我现在确定这是选择,因为如果没有它们,我可以在数据库中看到保存的数据。您的
    get\u week\u day()
    函数返回什么?def getweekdays(self):self.WEEKDAYS=[(1,uu(“星期一”),(2,(“星期二”),(3,(“星期三”),(4_(如果打印
    request.POST.get('weekday'),则返回self.weekday
    在将其分配给
    模型\u实例
    之前,其值是多少?您也在
    工作日使用
    字符域
    ,但您的选择是整数1~7。您应该将其更改为
    整数域