用于包含图像,文件和标签的模型的夹具数据 myapp / models.py myapp / fixtures / sample_data.json

问题描述

我正在使用Djano 3.1,Python 3.6,easy-thumbnails 2.7和django-taggit 1.3

我想为我的模型创建一个夹具数据文件

这是我的(简化的)模型:

myapp / models.py

class Post(models.Model):
    featured_image = ThumbnailerImageField(upload_to='uploads/post/featured_image',blank=True,null=True) 
    content = models.CharField(max_text=1000,null=False,blank=False)
    tags = TaggableManager()
    

class PostFileAttachment(models.Model):
    post = models.ForeignKey(Post,related_name='attachments',on_delete = mFixtures data for model containing images and filesodels.CASCADE)
    file = models.FileField(upload_to="uploads/post/attachments") 


class Postimagegallery(models.Model):
    post = models.ForeignKey(Post,related_name='pictures',on_delete = models.CASCADE)
    description = models.CharField(max_length=100,null=True,default='')
    image = models.ImageField(upload_to='uploads/blogpost/gallery')

myapp / fixtures / sample_data.json

[
    {
      "model": "myapp.Post","pk": 1,"fields": {
        "featured_image": ???
        "content": "This is where the content goes"
        "tags": ???
      }
    },{
      "model": "myapp.PostFileAttachment","fields": {
          "post": 1
          "file": ???
      }
    },{
      "model": "myapp.Postimagegallery","fields": {
         "post": 1
         "description": "File description","image": ???
      }
    }
]

如何在JSON固定文件中指定文件

解决方法

如果您尝试通过admin界面保存带有图像的Post,例如image.png,然后查看数据库,则会发现帖子的图像及其相对路径已保存:uploads/post/featured_image/image.png,因此您需要在灯具中指定该路径。

在您的myapp/fixtures/sample_data.json固定文件中,应该像

[
    {
      "model": "myapp.Post","pk": 1,"fields": {
        "featured_image": "uploads/post/featured_image/FEATURED_IMAGE.EXT"
        "content": "This is where the content goes"
      }
    },{
      "model": "myapp.PostFileAttachment","fields": {
          "post": 1
          "file": "uploads/post/attachments/ATTACHMENT.EXT"
      }
    },{
      "model": "myapp.PostImageGallery","fields": {
         "post": 1
         "description": "File description","image": "uploads/blogpost/gallery/IMAGE.EXT"
      }
    }
]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...