Django 从XML节点保存通用图像

Django 从XML节点保存通用图像,django,xml-parsing,Django,Xml Parsing,我正在尝试使用XML更新我的记录…到目前为止,任务的第一部分已经完成…我想知道的是如何将我的图像放到保存的对象上(顺便说一句,我正在使用imagekit进行图像处理)。我的模型是这样的: class Photo(ImageModel): name = models.CharField(max_length=100) original_image = models.ImageField(upload_to='photos') num_views = models.Posit

我正在尝试使用XML更新我的记录…到目前为止,任务的第一部分已经完成…我想知道的是如何将我的图像放到保存的对象上(顺便说一句,我正在使用imagekit进行图像处理)。我的模型是这样的:

class Photo(ImageModel):
    name = models.CharField(max_length=100)
    original_image = models.ImageField(upload_to='photos')
    num_views = models.PositiveIntegerField(editable=False, default=0)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

    class IKOptions:
        spec_module = 'my_app.specs'
        cache_dir = 'photos'
        image_field = 'original_image'
        save_count_as = 'num_views'

class Room(models.Model):
    ...
    images = generic.GenericRelation('Photo', blank=True, null=True)
    ...
我用于此目的的XML如下所示:

<room>
    <sq_ft>...</sq_ft>
    <size>...</size>
    <bedrooms>...</bedrooms>
    <images>
        <image>photos/IMG_3406.JPG</image>
        <image>photos/IMG_3416.JPG</image>
        <image>photos/IMG_3409.JPG</image>
    </images>
</room>
这确实保存了照片(有些),但是
original_image
字段始终为空,这意味着我在上面的代码中做了一些错误的事情。有什么想法吗?

你看了吗?不确定它是否完全适合你,因为我不能100%确定你的要求。但是,它确实会处理与非常顺利地使用XML的模型的关系,因此可能会顺便解决您的问题:-)


我认为xml_模型适合您。让我知道

最终解决了这个问题:

imagelist = room.getElementsByTagName('image')
if imagelist:
    for child in imagelist:
        photo = child.childNodes[0].nodeValue
        room_photo = Photo.objects.create(content_object = room, 
                    object_id = room.id, original_image = photo)

我想这可能会帮助以后遇到类似问题的人。

这看起来有点有趣……我会看看是否可以在应用程序中使用它……尽管我真的很想知道如何处理这个问题,而不必求助于添加另一个应用程序,因为我已经想出了一个脚本来进行更新……图像的处理是最麻烦的我我会随时通知你,尽管我刚刚解决了这个问题……不过我希望在我编写一个长脚本之前了解xml_模型。感谢上帝的帮助。不用担心,对不起,我帮不了你解决这个问题。
imagelist = room.getElementsByTagName('image')
if imagelist:
    for child in imagelist:
        photo = child.childNodes[0].nodeValue
        room_photo = Photo.objects.create(content_object = room, 
                    object_id = room.id, original_image = photo)