/ / Неможливі тести Django на аргументі недійсного ключового слова - django, django-models, django-testing

Джанго випробовує збій на недійсному ключовому аргументі - django, django-models, django-testing

У мене є model.py, наприклад:

from django.db import models
from django.contrib.auth.models import User
from datetime import datetime


class UserProfile(models.Model):
user = models.OneToOneField(User)

def __unicode__(self):
return self.user.username


class Project(models.Model):
user = models.ForeignKey(UserProfile)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
product = models.ForeignKey("tool.product")
module = models.ForeignKey("tool.module")
model = models.ForeignKey("tool.model")
zipcode = models.IntegerField(max_length=5)

def __unicode__(self):
return unicode(self.id)

І мої тести.py:

from django.test import TestCase, Client
# --- import app models
from django.contrib.auth.models import User
from tool.models import Module, Model, Product
from user_profile.models import Project, UserProfile


# --- unit tests --- #
class UserProjectTests(TestCase):

fixtures = ["admin_user.json"]

def setUp(self):
self.product1 = Product.objects.create(
name="bar",
)
self.module1 = Module.objects.create(
name="foo",
enable=True
)
self.model1 = Model.objects.create(
module=self.module1,
name="baz",
enable=True
)
self.user1 = User.objects.get(pk=1)

...

def test_can_create_project(self):
self.project1 = Model.objects.create(
user=self.user1,
product=self.product1,
module=self.module1,
model=self.model1,
zipcode=90210
)

self.assertEquals(self.project1.zipcode, 90210)

Але я отримую a TypeError: "product" is an invalid keyword argument for this function помилка

Я не впевнений, що не вдається, але я здогадуюся, що стосується стосунків з ФК ...

Будь-яка допомога буде дуже вдячна.

EDIT: Повний відстеження:

    ERROR: test_can_create_project (user_profile.tests.UserProjectTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/sam/Dropbox/django-projects/unirac/user_profile/tests.py", line 52, in test_can_create_project
zipcode=90210
File "/home/sam/.envs/unirac/local/lib/python2.7/site-packages/django/db/models/manager.py", line 137, in create
return self.get_query_set().create(**kwargs)
File "/home/sam/.envs/unirac/local/lib/python2.7/site-packages/django/db/models/query.py", line 375, in create
obj = self.model(**kwargs)
File "/home/sam/.envs/unirac/local/lib/python2.7/site-packages/django/db/models/base.py", line 367, in __init__
raise TypeError(""%s" is an invalid keyword argument for this function" % kwargs.keys()[0])
TypeError: "product" is an invalid keyword argument for this function

Відповіді:

2 для відповіді № 1

Model.objects.create(... Мабуть, має бути Project.objects.create(

На:

self.project1 = Model.objects.create(
user=self.user1,
product=self.product1,
module=self.module1,
model=self.model1,
zipcode=90210
)

На стороні, називаючи своє Model, Model, як from tool.models import Module, Model, Product мабуть, мається на увазі, є погана ідея.


На іншому сторонній стороні, як правило, забезпечується зворотний зворот дуже корисна інформація про те, де сталася помилка Тут ви бачите, що прослідкування вказує на помилку:

File "/home/sam/Dropbox/django-projects/unirac/user_profile/tests.py", line 52, in test_can_create_project

Перш ніж перейти до бібліотечного коду, який, з вами, можна вважати, не буде помилкою.