-2
사용자가 프로필 모델에 데이터와 함께 등록 할 수 있도록 양식을 만들고 있는데, 문제는 ManyToMany 인 범주 필드에 있으며 저장시 오류가 발생합니다.django에서 템플릿으로 새 사용자를 생성 할 때 오류가 발생합니다.
이것은 내 양식입니다.
class UserForm(UserCreationForm):
negocio = forms.CharField(max_length=30)
encargado = forms.CharField(max_length=30)
imagen = forms.ImageField()
direccion = forms.CharField(max_length=30)
telefono = forms.DecimalField(max_digits=15, decimal_places=0)
email = forms.EmailField()
categoria = forms.ModelMultipleChoiceField(queryset=Categoria.objects.all())
lat = forms.CharField(max_length=30)
lng = forms.CharField(max_length=30)
이것은 내 모델입니다.
class Perfil(models.Model):#Este es el perfil del usuario(solo existe uno por cada usuario)
user = models.OneToOneField(User, related_name='profile')
nombre_negocio = models.CharField(max_length=50, unique=True)
encargado = models.CharField(max_length=50,null=True,blank=True)
imagen = models.ImageField(upload_to = 'perfiles',null=True,blank=True)
direccion = models.CharField(max_length=100)
telefono = models.DecimalField(max_digits=15, decimal_places=0,null=True,blank=True)
email = models.EmailField()
category = models.ManyToManyField(Categoria)
inicio = models.DateTimeField(null=True,blank=True)
final = models.DateTimeField(null=True,blank=True)
lat = models.CharField(max_length=50,null=True,blank=True)
lng = models.CharField(max_length=50,null=True,blank=True)
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.nombre_negocio)
super(Perfil, self).save(*args, **kwargs)
def __unicode__(self):
return self.nombre_negocio
class Categoria(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(editable=False)
imagen = fields.ImageField(upload_to = 'categorias',null=True,blank=True,dependencies=[
FileDependency(processor=ImageProcessor(
format='JPEG', scale={'max_width': 200, 'max_height': 150}))
])
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.name)
super(Categoria, self).save(*args, **kwargs)
def __unicode__(self):
return self.name
이것은 내 견해입니다.
class RegistrarUsuario(FormView):
form_class = UserForm
template_name = 'home/registrar.html'
success_url = '/registrar'
def form_valid(self,form):
user = form.save()
email = form.cleaned_data['email']
direccion = form.cleaned_data['direccion']
nombre_negocio = form.cleaned_data['negocio']
category = form.cleaned_data['categoria']
encargado = form.cleaned_data['encargado']
telefono = form.cleaned_data['telefono']
imagen = form.cleaned_data['imagen']
lat = form.cleaned_data['lat']
lng = form.cleaned_data['lng']
user_profile = Perfil(user=user,nombre_negocio=nombre_negocio,encargado=encargado,imagen=imagen,direccion=direccion,telefono=telefono,email=email,category=category,lat=lat,lng=lng)
user.save()
user_profile.save()
return super(RegistrarUsuario, self).form_valid(form)
그리고 카테고리 필드에 데이터를 저장하는 방법을 잘 모르겠습니다.
오류가 발생하는 경우 저희에게 알려주십시오. –
죄송합니다. 문제는 카테고리 카테고리입니다./등록 기관에서 TypeError/ 'category'는이 함수에 대한 잘못된 키워드 인수입니다. –