Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2013 19:07:26

BrightRadium
Зарегистрирован: 2013-05-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Отношение многие-к-многим

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)
views.py
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))
addTransfer.html
<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.

Офлайн

#2 Май 15, 2013 20:46:15

BrightRadium
Зарегистрирован: 2013-05-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Отношение многие-к-многим

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.

Офлайн

#3 Май 15, 2013 23:44:54

BrightRadium
Зарегистрирован: 2013-05-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Отношение многие-к-многим

Разобрался: перед тем, как использовать отношение многие-к-многим, надо сохранить.

report.save()
report.users.add(sender)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version