Форум сайта python.su
models.py
from django.db import models from django.contrib import admin class User(models.Model): name = models.CharField(max_length=64) contacts = models.TextField(blank=True) class Report(models.Model): dateTime = models.DateTimeField(auto_now_add = True) amount = models.CharField(max_length=30) users = models.ManyToManyField(User)
def addTransfer(request): amount = request.GET["amount"] sender = User.objects.get(id = request.session["id"]) report = Report(amount = amount, dateTime = datetime.now) report.users.add(sender) t = loader.get_template("addTransfer.html") c = Context({'sender': sender, 'recipient': recipient, 'report': report}) return HttpResponse(t.render(c))
<h2>Отправитель: {{ sender.name }}</h2> <h3>Сумма: {{ report.amount }}</h3> <h3>Дата: {{ report.dateTime }}</h3>
ValueError at /addTransfer/
“<Report: Report object>” needs to have a value for field “report” before this many-to-many relationship can be used.
Офлайн
Traceback:
File “/home/users2/m/michaelpak/virtualenv/MyEnv/lib/python2.7/site-packages/django/core/handlers/base.py” in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File “/home/users2/m/michaelpak/django/cash2friend/vk/views.py” in addTransfer
97. report.users.add(sender)
File “/home/users2/m/michaelpak/virtualenv/MyEnv/lib/python2.7/site-packages/django/db/models/fields/related.py” in __get__
897. through=self.field.rel.through,
File “/home/users2/m/michaelpak/virtualenv/MyEnv/lib/python2.7/site-packages/django/db/models/fields/related.py” in __init__
586. (instance, source_field_name))
Exception Type: ValueError at /addTransfer/
Exception Value: “<Report: Report object>” needs to have a value for field “report” before this many-to-many relationship can be used.
Офлайн
Разобрался: перед тем, как использовать отношение многие-к-многим, надо сохранить.
report.save() report.users.add(sender)
Офлайн