在不同的应用程序中重用CBV

时间:2014-06-05 09:40:25

标签: django django-views mixins

我需要一些帮助,以了解如何在2个不同的应用程序中实现照片上传并保持我的项目干燥。我有一个应用程序(图库),我在其中定义了3个不同的视图(它实际上是git中的django-jquery-file-upload示例的实现:https://github.com/sigurdga/django-jquery-file-upload

class PictureCreateView(CreateView)
    ...
class PictureDeleteView(DeleteView):
    ...
class PictureListView(ListView):
    ...

在同一模板中使用此3类来选择要将多张照片上传(并最终删除)到服务器。在画廊应用程序中一切正常,但现在我想在2个不同的应用程序(和模型)中使用所有3个视图。画廊模型如下:

class Picture(models.Model):
    file = models.ImageField()
    place = models.ForeignKey(
        'app_place.Poi',
        related_name='places',
        null=True, blank=True,
    )
    event = models.ForeignKey(
        'app_event.Event',
        related_name='events',
        null=True, blank=True,
    ) 

这样每张照片都可能与某个事件(或地点)相关。我想在活动中使用gallery应用程序中的3个视图,并将DetailView(所有经过身份验证的用户都可以添加照片添加到地点或事件中)属于2个不同的应用程序......正确的方法是什么?试图将3个画廊视图定义为mixin?或者使用get_context_data调用它们?我不知道如何继续进行,并且不需要帮助/建议。

0 个答案:

没有答案