2016-04-19 3 views
0

в соответствии с https://docs.djangoproject.com/en/1.9/topics/testing/overview/:Тестирование модели - как создавать записи

from django.test import TestCase 
from myapp.models import Animal 

class AnimalTestCase(TestCase): 
    def setUp(self): 
     Animal.objects.create(name="lion", sound="roar") 
     Animal.objects.create(name="cat", sound="meow") 

    def test_animals_can_speak(self): 
     """Animals that can speak are correctly identified""" 
     lion = Animal.objects.get(name="lion") 
     cat = Animal.objects.get(name="cat") 
     self.assertEqual(lion.speak(), 'The lion says "roar"') 
     self.assertEqual(cat.speak(), 'The cat says "meow"') 

Я хочу создать нАлАдкА моей модели класса:

class Post(models.Model): 
    author = models.ForeignKey('auth.User') 
    tags = models.ManyToManyField('blogUserPlane.Tag') 
    title = models.CharField(max_length=200) 
    text = models.TextField() 
    created_date = models.DateTimeField(
     default=timezone.now) 
published_date = models.DateTimeField(
    blank=True, null=True) 

Это моя НЕ РАБОТАЕТ нАлАдкА:

def setUp(self): 
    Post.objects.all().create(author=User(), tag=models.ManyToManyField('blogUserPlane.Tag'), title="title1", text="text1", created_date=None, published_date=None) 

Что такое правильный способ создания записей модели с помощью ManyToManyField и ForeginKey?

ответ

0

Если вы хотите ввести значение в поле ForeignKey или ManyToMany, сначала необходимо импортировать это значение. Например, если вы хотите, чтобы ввести значение в поле автора,

from django.contrib.auth.models import User 
user = User.objects.get(username = 'your_username') 
Post.objects.create(author = user) 
0

Чтобы сохранить M2M

Сохранить некоторые значения в таблице ссылок

`тег = blogUserPlane.Tag()

...

tag.save() `

Для сохранения внешнего ключа

from django.contrib.auth.models import User post = Post() post.author = User ... post.tags.add(tag) post.save()

Смежные вопросы