2016-04-19 109 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()