Вот импорт:
from django.db import models
from datetime import datetime, timedelta
from django.contrib.auth.models import User
Это первый класс, который я определил. Это статус действия (Actie), и он имеет идентификатор статуса и имя статуса с атрибутом max_length 5 (todo, выполняется, done)
class Status(models.Model):
id = models.IntegerField(primary_key=True)
status_naam = models.CharField(max_length=5, default='todo')
def __str__(self):
return str(self.id) + " - " + self.status_naam
Это второй класс Klant, который означает покупатель. У него есть идентификатор, имя клиента и пользователи от клиента, который представляет собой ManyToManyField и ссылается на пользователей из Таблицы пользователей, которые мне дает django.
class Klant(models.Model):
id = models.IntegerField(primary_key=True)
klant_naam = models.CharField(max_length=100, default='-')
klant_gebruiker = models.ManyToManyField(User)
def __str__(self):
return str(self.id) + " - " + self.klant_naam
Это класс Actie (действие или действие, которое определяет пользователь), который имеет идентификатор, имя действия, состояние действия, которое ссылается на приведенную выше таблицу «Состояние», дату публикации действия, окончание действия. дата (крайний срок) и идентификатор клиента, который ссылается на Klant.
class Actie(models.Model):
id = models.IntegerField(primary_key=True)
actie_naam = models.CharField(max_length=150, default='-')
actie_status = models.ForeignKey(Status, default=1)
actie_aanmaakdatum = models.DateTimeField(default=datetime.now())
actie_einddatum = models.DateTimeField(default=datetime.now() + timedelta(days=1))
actie_klant = models.ForeignKey(Klant, default=1)
def __str__(self):
return str(self.id) + " - " + self.actie_naam
Вот что я делаю в оболочке:
(InteractiveConsole)
>>> from MyApp.models import User, Klant
>>> klant1 = Klant.objects.create(klant_naam='aCustomer')
>>> user1 = User.objects.get(username='peterdevries')
>>> klant1.klant_gebruiker.add(user1)
Traceback (most recent call last):
File "C:\shell.py", line 69, in handle
self.run_shell(shell=options['interface'])
File "C:\shell.py", line 61, in run_shell
raise ImportError
ImportError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\related_descriptors.py", line 468, in __get__
return self.related_manager_cls(instance)
File "C:\related_descriptors.py", line 751, in __init__
(instance, self.source_field_name))
ValueError: "<Klant: None - aCustomer>" needs to have a value for field "klant" before this many-to-many relationship can be used.
>>>
Итак, мой вопрос: что мне нужно сделать, чтобы исправить эту ValueError?