在Django 1.5中放置帮助功能的位置

时间:2013-06-06 13:03:23

标签: django django-models django-forms django-admin django-views

我有一个函数“GenerateUsername”,它返回一个随机用户名。我在managers.py中的一个经理中使用它,但哪里有这个功能的最佳位置?在一个名为helpers.py?

的单独文件中
def GenerateUsername():
    username = str(random.randint(0,1000000))
    try:
        User.objects.get(username=username)
        return GenerateUsername()
    except User.DoesNotExist:
        return username;

1 个答案:

答案 0 :(得分:2)

我认为这里应该提供更全面的答案。有几种方法可以解决它。

  1. utils.py用于整个django站点:这有一个缺陷,即该站点中的所有django应用程序将在此处转储其泛型函数,此文件将成为blob
  2. utils.py为网站内的每个django应用程序:所以如果你有两个应用程序,app1和app2,那么你有app1 / utils.py和app2 / utils.py。这略好于(1)
  3. Django之外的库(可能与Django处于同一级别):我经常为通用Django API创建库,以防它们被多个站点使用。这有一个额外的好处,如果你明天启动一个新的Django站点,你可以在该站点中使用这个通用功能,只需在路径上导入该库后即可。在库中,您可以使用单独的模块,例如userutils.py,mailutils.py,它们将解决“blob”问题并更好地组织代码。我推荐这种方法。