Прочитала все что нашла по полю many_to_many, в том числе тесты, которые были в 1й из тем, но что-то я, кажется делаю не так...
models.py:
Услуги:
class Service(models.Model):
name=models.CharField(u'Наименование',max_length=100)
price=models.CharField(u'Цена',max_length=30)
info=models.TextField(u'Дополнительная информация',blank=True)
deadline=models.CharField(u'Сроки выполнения',max_length=250,blank=True)
class Meta:
ordering=['-id']
def __unicode__(self):
return self.name
Заказы
class Order(models.Model):
service=models.ManyToManyField(Service)
fio=models.CharField(u'ФИО заказчика',max_length=250)
telephone=models.CharField(u'Телефон',max_length=100)
email=models.EmailField(blank=True)
info=models.TextField(blank=True)
pub_date=models.DateTimeField(u'Дата',auto_now_add=True)
Отправка e-mail работает, а вот на записи заказа в базу я застряла:
views.py:
def makeorder(request):
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
serv=' , '.join(str(n) for n in cd['service'])
fio=smart_str(cd['fio'])
telephone=smart_str(cd['telephone'])
info=smart_str(cd['info'])
body="Услуги: %s \n\n" \
"ФИО заказчика: %s \nТелефон: %s"\
"\nДополнительная информация:%s" %(serv,fio,telephone,info)
subject = u'Заказ '
sender = ('"\"')
recipients = [EMAIL_HOST_USER]
msg = EmailMessage(subject, body, sender, recipients)
msg.send()
Начиная отсюда пыталась делать по примерам из тестов, но результат нулевой:
j=Order(fio=cd['fio'],\
telephone=cd['telephone'],\
email=cd['email'],info=cd['info'])
j.save()
for n in cd['service']:
p1=Service.objects.filter(name__icontains n)
j.service.add(p1)
j.save()
return HttpResponseRedirect('/message/thanks/')
Ошибка:
Traceback:
File "W:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
101. request.path_info)
File "W:\Python27\lib\site-packages\django\core\urlresolvers.py" in resolve
300. sub_match = pattern.resolve(new_path)
File "W:\Python27\lib\site-packages\django\core\urlresolvers.py" in resolve
300. sub_match = pattern.resolve(new_path)
File "W:\Python27\lib\site-packages\django\core\urlresolvers.py" in resolve
209. return ResolverMatch(self.callback, args, kwargs, self.name)
File "W:\Python27\lib\site-packages\django\core\urlresolvers.py" in callback
216. self._callback = get_callable(self._callback_str)
File "W:\Python27\lib\site-packages\django\utils\functional.py" in wrapper
27. result = func(*args)
File "W:\Python27\lib\site-packages\django\core\urlresolvers.py" in get_callable
92. lookup_view = getattr(import_module(mod_name), func_name)
File "W:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
35. import(name)
Exception Type: SyntaxError at /order/
Exception Value: invalid syntax (views.py, line 35)
Где ошибка я понимаю, но вот как исправить не знаю, посоветуйте пожалуйста
Updated 31 May 2012, 23:51 by Musya.