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