Python 对值表单进行编码。ModelForm
我正在验证我的模型是否接受重音符号和ñ,但是通过表单传递的字符没有编码,admin显示它不是有效字符。范例 我把它放在admin:administración中,它的形式是.pyPython 对值表单进行编码。ModelForm,python,django,django-models,django-forms,django-admin,Python,Django,Django Models,Django Forms,Django Admin,我正在验证我的模型是否接受重音符号和ñ,但是通过表单传递的字符没有编码,admin显示它不是有效字符。范例 我把它放在admin:administración中,它的形式是.py <input name="nombre" value="administración" class="vTextField" maxlength="100" type="text" id="id_nombre" /> Forms.py class CapituloSerie(models.Model):
<input name="nombre" value="administración" class="vTextField" maxlength="100" type="text" id="id_nombre" />
Forms.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)
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)
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)
Admin.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)
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)
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。有没有办法在forms.py?中对值进行编码
关于问题在于
\uuuuUnicode\uuuUnicode>方法不返回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():-]+$'
非常好的字符编码为
,但管理员会输入有效值。。为什么?self.temporada将在管理中展示vyper和mountain-Season 4完美的球是可以的,谢谢