У меня есть две модели, которые выглядят следующим образом:Как работает обратная функция в Django?
class Respond(models.Model):
id = models.AutoField(primary_key=True, unique=True)
class Product(models.Model):
responde = models.ForeignKey(Responde, null=True)
name = models.CharField(max_length=255)
description = models.CharField(max_length=10, blank=True, null=True)
price = models.CharField(max_length=50, blank=True, null=True)
И у меня есть форма, которая после отправки, отправить данные на удаленный сервер, а затем получить XML реагировать. У меня есть скрипт, который анализирует файлы xml или файловые объекты. Чем я сохраняю данные xml в базе данных.
class MyView(View):
template_name = 'myapp/form.html'
def get(self, request, *args, **kwargs):
my_form = MyForm(prefix='my_form')
return render(request, self.template_name, { 'my_form' : my_form })
def post(self, request, *args, **kwargs):
my_form = MyForm(request.POST, prefix='my_form')
if my_form.is_valid():
## cleaned data
r = Respond.objects.create()
for xmldata in products_xml:
p = Product(
name=xmldata['ProductName'],
description=xmldata['ProductDescription'],
price=xmlData['ProductPrice'],
)
p.respond = r
p.save()
r.product_set.all()
return HttpResponseRedirect(reverse(respond:'result', args=(r.id)))
После этого я хочу перенаправить на страницу, отображающую все данные сохранения из идентификатора ответа.
В моем случае есть invalid syntax
ошибка reverse
функция строка. Я читаю официальную документацию об этом, но я действительно не понимаю, как работает обратная функция. Мой views.py:
def result(request):
all_products = Products.objects.all()
template = get_template("booking/results.html")
context = Context({ 'all_products':all_products })
html = template.render(context)
return HttpResponse(html)
Мой urls.py выглядит следующим образом:
urlpatterns = patterns('',
url(r'^$', views.MyView.as_view()),
url(r'^(?P<respond_id>[0-9]+)/result/$', name='result'),
)
Помогите мне понять, как должен выглядеть обратной функции с конфигурацией URL. Спасибо.
Просто хочу отметить, 'Args = (r.id,)' будет работать тоже. Обратите внимание на конечную запятую. – xyres