编码值窗体.ModelForm

2024-09-27 00:13:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在验证我的模型是否接受重音符号和ñ,但是通过表单传递的字符没有编码,admin显示它不是有效字符。示例

我把这个放在admin中:管理表单.py你知道吗

<input name="nombre" value="administración" class="vTextField" maxlength="100" type="text" id="id_nombre" />

代码如下:

型号.py

class CapituloSerie(models.Model):
    nombre=models.CharField("Capitulo",max_length=100,unique=True)
    url_seo = models.SlugField(max_length=250, blank=True, default='')

    def __unicode__(self):

        return self.nombre+'-'+ format(self.temporada)

    def save(self, *args, **kwargs):
        if not self.id:
            self.url_seo = defaultfilters.slugify(self.nombre)
        super(CapituloSerie, self).save(*args, **kwargs)

表单.py

from django import forms
from django.forms import widgets
from django.contrib.admin.widgets import FilteredSelectMultiple

import hashlib
EXPRE = r'^[A-Za-záéíóúñÑ \d():-]+$'


class CapituloForm(forms.ModelForm):

    class Meta:
        model = CapituloSerie

    def __init__(self, *args, **kwargs):  
        super(CapituloForm, self).__init__(*args, **kwargs)
        titulo_field = self.fields['nombre']
        print "Formulario"
        print self['nombre']

        self.fields['nombre'] = forms.RegexField(EXPRE, label=titulo_field.label, max_length=titulo_field.max_length)

管理员.py

from django.contrib import admin
from jalvarez.series import models
from jalvarez.series.form import CapituloForm

class CapituloAdmin(admin.ModelAdmin):
    exclude=('visitas',)
    print "Admin"   
    form = CapituloForm

admin.site.register(models.CapituloSerie,CapituloAdmin)

我所有的文件一开始都有这个#-编码:utf-8。有没有办法在表单.py?. 你知道吗

敬礼


Tags: djangofrompyimportself表单adminmodels
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:04

问题在于__unicode__方法没有返回unicode字符串:

def __unicode__(self):
    return self.nombre+'-'+ format(self.temporada)

我不知道什么是self.temporada以及您打算如何格式化字符串,但请尝试以下几行:

def __unicode__(self):
    return u'{0} - {1}'.format(self.nombre, self.temporada)

类似地,正则表达式应该如下所示

EXPRE = ur'^[A-Za-záéíóúñÑ \d():-]+$'

相关问题 更多 >

    热门问题