mysql - (1406, "Data too long for column ' sr_number' at row 1") 在 Django 中收到帖子并保存到数据库后

标签 mysql django forms post

任何帮助将不胜感激,我对 Django 和一般的 Web 应用程序开发还很陌生,但到目前为止,我基本上已经能够暴力破解所有内容或自行解决;然而,这让我难住了。

出于某种原因,我的代码似乎试图从我的字段提交整个 html,而不仅仅是它包含的数据,我不确定为什么。

错误消息调试显示:

POST Variable       Value
submitter           u'ccroffor'
csrfmiddlewaretoken u'P8s3aL4bkyzZJWHPitQVEIFS6Lxt3s6e'
sac_id              u'892064'
sr_number           u'3-3016786463'

但是查询显示:

    query   
'INSERT INTO `autoed_submission` (`sr_number`, `sac_id`, `submission_time`, `completed_time`, `submitter`, `submission_helpful`, `submission_link`) VALUES (\'<textarea cols=\\"40\\" id=\\"id_sr_number\\" name=\\"sr_number\\" placeholder=\\"ex... 3-3010581928\\" rows=\\"1\\">\\r\\n3-3016786463</textarea>\', \'<textarea cols=\\"40\\" id=\\"id_sac_id\\" name=\\"sac_id\\" placeholder=\\"ex... 890046, 890052, ...\\" rows=\\"1\\">\\r\\n892064</textarea>\', \'2013-04-20\', NULL, \'<textarea cols=\\"40\\" id=\\"id_submitter\\" name=\\"submitter\\" placeholder=\\"ex... ccroffor\\" rows=\\"1\\">\\r\\nccroffor</textarea>\', \'U\', \'undefined\')'    

View .py

def mySubView(request):
if request.method == 'POST':                                            #checking request
    form = AutoEdForm(request.POST)
    if form.is_valid():                                                             #validating form
        newSubmission = Submission(sr_number = form['sr_number'], sac_id = form['sac_id'], submitter = form['submitter'], submission_time = datetime.now(tzz))  #formatting form data to db model
        newSubmission.save()    #saving data to db
        return HttpResponseRedirect('/thanks/') #redirecting to thanks page
else:
    form = AutoEdForm() 
return render_to_response('submission.html', {'form':form,}, context_instance=RequestContext(request))

表单.py

class AutoEdForm(forms.Form):
sr_number = forms.CharField(
    max_length=100,
    label=u'SR Number',
    widget=forms.Textarea(
        attrs={
            'placeholder': 'ex... 3-3010581928',
            'rows': '1',
        })
)

sac_id = forms.CharField(
    max_length=100,
    label=u'Sac ID',
    widget=forms.Textarea(
        attrs={
            'placeholder': 'ex... 890046, 890052, ...',
            'rows': '1',
        })
)

submitter = forms.CharField(
    max_length=100,
    label=u'nai-corp Username',
    widget=forms.Textarea(
        attrs={
            'placeholder': 'ex... ccroffor',
            'rows': '1',
        })
)   

def clean(self):
    cleaned_data = super(AutoEdForm, self).clean()
    return cleaned_data

相关html

{% load bootstrap_toolkit %}
     <div class="container well">
    <form class="form-horizontal" action="" method="post">
        {% csrf_token %}
        {% for field in form %}
            {% include "bootstrap_toolkit/field_horizontal.html" %}
        {% endfor %}
            <input type="submit" value="Submit" class="btn btn-primary" style="margin-left:180px">           
    </form>
     </div> <!-- /container -->

模型.py

class Submission(models.Model):

ED_VALUE = (
    ('A', 'Averted'),
    ('N', 'Not Averted'),
    ('U', 'Unanswered'),
)

sr_number = models.CharField(max_length=100)
sac_id = models.CharField(max_length=100)
submission_time = models.DateField(null=True)
completed_time = models.DateField(null=True)
submitter = models.CharField(max_length=100)
submission_helpful = models.CharField(max_length=100, choices=ED_VALUE, blank=False, default="U")
submission_link = models.CharField(max_length=100, blank=False,default="undefined")

最佳答案

保存cleaned data , 不是表单域

if form.is_valid():
    data = form.cleaned_data
    newSubmission = Submission(sr_number = data['sr_number'], sac_id = data['sac_id'], submitter = data['submitter'], submission_time = datetime.now(tzz))  #formatting form data to db model

关于mysql - (1406, "Data too long for column ' sr_number' at row 1") 在 Django 中收到帖子并保存到数据库后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123245/

相关文章:

mysql - 使用 Mysql 复制的 Drupal 8 安装

javascript - jQuery 中 HTML 表单标签的有效/无效名称是什么?

java - 如何创建动态拖放模板?

javascript 为未选中的复选框提交默认值

python - 从作为列表传递以进行查询的所有交易品种中返回数据(一个最新对象)

php - 无法从 $_GET 请求中获取值

mysql - SQL查询按字母顺序对所有结果进行排序,除了一个?

python - Django - 解析 JSONP(带填充的 Json)

python - Django Views : When is request. data a dict vs a QueryDict?

Django REST Framework GET 检索具有 NAME LIKE %NAME% 的行