के लिए ऐसी कोई तालिका मैं वास्तव में सरल ब्लॉग अनुप्रयोग के लिए परीक्षण की एक जोड़ी लिखा है, लेकिन बहुत से संबंध बनाने के लिए कई विफल रहता है जब मैं परीक्षण चलाने: ./manage.py test myblog
Django परीक्षण: DatabaseError: ManyToManyField
DatabaseError: no such table: myblog_post_tag
फिर भी जब मैं ./manage.py sql myblog
कार्य करें:
BEGIN;
CREATE TABLE "myblog_tag" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(50) NOT NULL
)
;
CREATE TABLE "myblog_post_tag" (
"id" integer NOT NULL PRIMARY KEY,
"post_id" integer NOT NULL,
"tag_id" integer NOT NULL REFERENCES "myblog_tag" ("id"),
UNIQUE ("post_id", "tag_id")
)
;
CREATE TABLE "myblog_post" (
"id" integer NOT NULL PRIMARY KEY,
"title" varchar(200) NOT NULL,
"pub_date" datetime NOT NULL,
"content" text NOT NULL
)
;
COMMIT;
यह एक मेज पैदा करता है, फिर भी यह इसलिए जब परीक्षण करने में विफल रहता है? किसी भी मदद की सराहना की है। यहाँ मेरी परीक्षा है:
class TagModelTest(TestCase):
def test_create_tags_for_posts(self):
# tests tagging posts, postodd will have tags 1 & 3, posteven will be 2 & 4
postodd = Post(
title="testing odd tags",
pub_date=timezone.now(),
content='''hello everybody, we are testing some tagging
functionality here. This post should have odd tags.''',
)
posteven = Post(
title="test even tags",
pub_date=timezone.now(),
content ='''hello everybody, we are testing some tagging
functionality here. This post should have even tags.''',
)
#save them to db
postodd.save()
posteven.save()
# create the tags
tag1 = Tag(name="1")
tag2 = Tag(name="2")
tag3 = Tag(name="3")
tag4 = Tag(name="4")
# save all tags to db
tag1.save()
tag2.save()
tag3.save()
tag4.save()
# create the many2many relationship
postodd.tag.add(tag1)
और मेरे models.py अगर जरूरत:
from django.db import models
class Tag(models.Model):
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name
class Post(models.Model):
tag = models.ManyToManyField(Tag)
title = models.CharField(max_length=200)
pub_date = models.DateTimeField(verbose_name="Date published")
content = models.TextField()
def __unicode__(self):
return self.title
लेकिन मैं syncdb का उपयोग नहीं कर रहा हूं। अभी मैं केवल परीक्षण चला रहा हूं, इसलिए जब मैं कोई परीक्षण चलाता हूं, तो क्या यह किसी भी परीक्षण डेटाबेस को नहीं बनाता है? – binarymac