测试模型 - 如何创建记录
Testing model - how to create records
根据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:
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 创建模型记录的正确方法是什么?
如果要在 ForeignKey 或 ManyToMany 字段中输入值,首先需要导入该值。
例如,如果您想在作者字段中输入一个值,
from django.contrib.auth.models import User
user = User.objects.get(username = 'your_username')
Post.objects.create(author = user)
保存M2M
在 link table
中保存一些值
`tag = blogUserPlane.Tag()
...
tag.save()`
保存外键
from django.contrib.auth.models import User
post = Post()
post.author = User
...
post.tags.add(tag)
post.save()
根据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:
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 创建模型记录的正确方法是什么?
如果要在 ForeignKey 或 ManyToMany 字段中输入值,首先需要导入该值。 例如,如果您想在作者字段中输入一个值,
from django.contrib.auth.models import User
user = User.objects.get(username = 'your_username')
Post.objects.create(author = user)
保存M2M
在 link table
中保存一些值`tag = blogUserPlane.Tag()
...
tag.save()`
保存外键
from django.contrib.auth.models import User
post = Post()
post.author = User
...
post.tags.add(tag)
post.save()