小编xul*_*vez的帖子

django:修改/扩展第三方应用程序

一个新手django问题

我想使用第三方应用程序,但我需要做出一些MODS的它(在这种情况下,应用程序是Django的注册,我需要改变的东西,如允许在没有确认的电子邮件注册)

最初,我只是将应用程序安装在常规site-packages文件夹中,并在那里更改了代码.现在我将我的代码放在bitbucket上,我需要一种方法能够以可用的方式将我的mod保存在存储库中,并且上传完整的python代码听起来不是一个好主意.

我想最好的方法是将第三方应用程序保留在站点包中,并在我的项目中创建一个应用程序以保留我的更改.在我的情况下,我会在我的项目中创建my-django-registration,然后在我的代码中需要它时导入它,而不是django-registration.

我还读到了virtualenv,但我认为这主要用于能够在同一台机器中使用多个环境(实际上,它建议不要更改virtualenv中安装的模块),并且不能帮助我保持我的更改在存储库中.

欢迎任何评论!谢谢

django

12
推荐指数
3
解决办法
3246
查看次数

Django循环导入错误

我是一个django新手.我刚刚在windows vista上安装了v 1.3.1(使用setup.py install)来安装python 2.5

当我启动python shell并尝试导入django.db时,我得到以下循环导入错误

>>> import os
>>> os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
>>> import django.db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\site-packages\django\db\__init__.py", line 78, in <module>
connection = connections[DEFAULT_DB_ALIAS]
  File "C:\Python25\lib\site-packages\django\db\utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
  File "C:\Python25\lib\site-packages\django\db\utils.py", line 33, in load_backend
return import_module('.base', backend_name)
  File "C:\Python25\lib\site-packages\django\utils\importlib.py", line 35, in import_module
    __import__(name)
  File "C:\Python25\Lib\site-packages\django\db\backends\sqlite3\base.py", line 14, in <module>
    from django.db import utils
ImportError: cannot import name utils
>>>
Run Code Online (Sandbox Code Playgroud)

看一下代码,我可以看到django\db\backends\sqlite3\base.py …

django

6
推荐指数
1
解决办法
5476
查看次数

django表单:在单个表单中编辑多组相关对象

我正在尝试做一些非常常见的事情:在一个表单中添加/编辑一堆相关模型.例如:

Visitor Details:
Select destinations and activities:
    Miami  []   -  swimming [], clubbing [], sunbathing[]
    Cancun []   -  swimming [], clubbing [], sunbathing[]
Run Code Online (Sandbox Code Playgroud)

我的模型是访问者,目的地和活动,访问者通过中间模型VisitorDestination将ManyToMany字段导入Destination,其中包含要在目标上完成的活动的详细信息(本身是Activity中的ManyToMany字段).

Visitor ---->(M2M though VisitorDestination) -------------> Destination
                                            |
                       activities            ---->(M2M)---> Activity  
Run Code Online (Sandbox Code Playgroud)

请注意,我不想输入新的目的地/活动值,只需从数据库中可用的那些中选择(但这是对M2M字段的完全合法使用吗?)

对我来说,这看起来像一个非常常见的情况(与其他模型中的FK或M2M字段的其他细节有很多甚至很多关系),这看起来像是最明智的建模,但如果我错了,请纠正我.

我花了几天时间搜索Django docs/SO/googling但是还没有弄清楚如何处理这个问题.我尝试了几种方法:

  1. 访问者的自定义模型表单,我在其中为目标和活动添加多个选项字段.如果可以独立选择目的地和活动,那就可以了,但在这里它们是相关的,即我想为每个目的地选择一个或多个活动

  2. 使用inlineformset_factory生成一套目的地/活动形式,与inlineformset_factory(Destination, Visitor).这会中断,因为Visitor与Destination有M2M关系,而不是FK.

  3. 使用formset_factory例如自定义普通formset DestinationActivityFormSet = formset_factory(DestinationActivityForm, extra=2).但是如何设计DestinationActivityForm呢?我没有充分探讨这一点,但看起来并不是很有希望:我不想输入目的地和活动列表,我想要一个复选框列表,标签设置为我想要的目的地/活动选择,但formset_factory会返回具有相同标签的表单列表.

我是django的一个完全新手所以也许解决方案是显而易见的,但我发现这个领域的文档非常弱 - 如果有人对表单/表单集的使用示例有一些指示也会有帮助

谢谢!

django django-forms django-orm

6
推荐指数
1
解决办法
4080
查看次数

标签 统计

django ×3

django-forms ×1

django-orm ×1