我正在尝试使用XML更新我的记录...到目前为止,任务的第一部分已经完成....我想知道的是如何将我的图像放到保存的对象上(我正在使用用于图像处理的图像包BTW)。我的模型看起来像这样:
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>
我的问题是如何在循环浏览XML文件时获取给定房间的图像并将其保存到该记录中。
更新1 到目前为止,我已尝试过这一点:
if room.getElementsByTagName('image'):
photo = ""
for v in room.getElementsByTagName('images'):
photo = v.childNodes[0].nodeValue
room_photo = Photo.objects.create(content_object = room,
object_id = room.id, original_image = photo)
这确实保存了照片(有点),但是original_image
字段总是空白的,这意味着我在上面的代码中做错了。有什么想法吗?
答案 0 :(得分:1)
你看过xml_models了吗?不确定它是否适合你,因为我不是100%肯定你在问什么。但是,它确实处理了与使用XML非常流畅的模型的关系,因此可以顺便解决您的问题: - )
我认为 xml_models将适合您。让我知道!
答案 1 :(得分:0)
最终解决这个问题:
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)
认为这可能会帮助后来遇到类似问题的人。