我目前正在为客户建立一个投资组合网站,而我在一个小区域遇到了麻烦.我希望能够为每个项目组合项目上传多个图像(不同数量),我看不到明显的方法.
我能看到的最用户友好的方式是带有JavaScript控件的文件上传表单,允许用户根据需要添加更多字段.有没有人有这样的问题的经验?确实,有没有可以解决我的问题的自定义库?
我之前几乎没有要求修改管理工具,所以我真的不知道从哪里开始.
谢谢任何能够解决问题的人.
在尝试在开发过程中节省尽可能多的时间并使尽可能多的应用程序可重用时,我遇到了一些障碍。在一个网站中,我有一个博客应用程序和一个新闻应用程序,它们基本上是相同的,显然,如果我可以制作一个应用程序并在必要时扩展它,然后让它作为两个具有单独数据库的单独应用程序运行,那么显然会更容易, ETC。
为了澄清,请考虑以下内容:假设来说,我想要一个单一的通用 news_content 应用程序,包含所有相关的模型、视图、url 结构和模板标签,然后我可以根据需要多次包含和扩展它们到一个项目中。
其分解如下:
news_content/
templatetags/
__init__.py
news_content.py
__init__.py
models.py (defines generic models - news_item, category, etc.)
views.py (generic views for news, archiving, etc.)
urls.py
admin.py
Run Code Online (Sandbox Code Playgroud)
有没有办法以不同的名称多次将此应用程序包含在项目中?我觉得这应该是显而易见的,但我只是没有考虑清楚。有人有这方面的经验吗?
我很感激人们能提供的任何建议。谢谢。
我有两个模型,Property
并且Image
通过外键关联,因此每个模型Property
都有的多个实例Image
。我正在尝试检索所有属性的查询集-列出所有字段-以及每个属性具有的图像数。我知道我可以作为两个不同的查询来执行此操作,但是我并不认为这是一种特别优雅的方法,并且由于通过XMLHttpRequest检索此信息而被证明效率不高。
这些模型定义如下:
class Property(models.Model):
title = models.CharField('title', max_length=255)
created = models.DateTimeField('created', auto_now_add=True)
modified = models.DateTimeField('modified', auto_now=True)
class Meta:
pass
class Image(models.Model):
prop_id = models.ForeignKey(Property)
image_file = models.ImageField('image file', upload_to='/path/to/image/')
class Meta:
pass
Run Code Online (Sandbox Code Playgroud)
我遵循此处发布的答案:跨反向关系的Django聚合,因为我认为这是一个类似的问题,但是我发现它返回一个空的查询集。
感谢您提供任何帮助。
编辑:
我运行的查询是:
Property.objects.all().annotate(image_count=Count('image')).order_by('-image_count')
Run Code Online (Sandbox Code Playgroud)
编辑2:
经过一些试验后,我找到了解决方案,尽管我很确定这可以视为错误/未记录的问题:
Property.objects.all().annotate(Count('image')).order_by('-image__count')
Property.objects.all().annotate(total_images=Count('image')).order_by('-total_images')
Run Code Online (Sandbox Code Playgroud)
这两种方法都可以,但是命名注释image_count
却没有。如果不深入研究Django源代码,我就无法真正推测出为什么会发生这种情况。