小编Edw*_*win的帖子

使用Django South和多个代码分支的工作流程

我很好奇其他Django开发人员在开发多个代码分支时如何管理他们与South的数据库迁移.让我举一个示例场景.

比如说你用主干开始开发.您从主干创建分支A. 此时,上次迁移的版本为app_10010.

然后,app_1在创建迁移文件的主干中创建迁移0011_add_name_column.同时,在分支A中,另一个开发人员app_1在分支A:中创建相同的迁移文件0011_increase_value_column_size.

分支A最终合并回主干.发生这种情况时,请说app_1分支A中的最后一个迁移版本是0020最后一个版本的主干0018,并且它们都是不同的迁移.正如您所看到的,迁移文件的状态从版本开始变得混乱0011,当分支从主干分叉时......并且它们在合并时都会发生冲突.

根据South的教程,处理这种情况的唯一方法是手动解决所有冲突.但是,如果冲突的数量很大,这并不是一个理想的解决方案.你通常如何处理这种情况,甚至首先要避免这种情况?

django branch django-south

27
推荐指数
2
解决办法
3477
查看次数

OpenGL中glTexSubImage和glTexImage函数的区别

这两个功能有什么区别?任何性能差异?

谢谢..

opengl glteximage2d

12
推荐指数
1
解决办法
1万
查看次数

使用Django表单向导为登录页面实现安全的双因素身份验证

所以基本上我想要实现类似Google双因素身份验证实现的东西.我的登录表单包含两步表单向导:

  1. 第1步(验证用户名和密码)
  2. 第2步(验证安全令牌)

使用场景将是:

  1. 用户具有与其帐户关联的安全令牌:如果用户通过了步骤1和步骤2,则将用户登录
  2. 用户没有安全令牌:仅在通过步骤1后立即记录用户

我现在将django的表单向导子类化为我的登录视图.在第2步中,默认情况下,Django FormWizard会将以前提交的表单中的字段值包含为隐藏字段.但是如您所知,密码是在步骤1中输入的,因此出于安全原因,我不希望将其包含在步骤2中.

我的第一个想法是使用会话来指示用户是否已通过步骤1,因此我不需要包含步骤1中的字段值..但我可能会忽略这里的某些内容.有什么更安全的解决方案?

另外我不太明白在FormWizard中使用security-hash.谁能解释一下?

非常感谢.

authentication django django-formwizard

8
推荐指数
3
解决办法
6459
查看次数

Django:无法使用m2m_changed信号检测多对多字段的变化 - 在模型级别进行审计

我想跟踪任何模型上哪些字段发生了变化(即在模型级别进行审计,因为它更具原子性,而不是像django和django-reversion已经可以执行的管理/表单级别).我可以使用前/后保存/删除信号为任何字段执行此操作.但是,我在m2m字段上有这样做的问题.

对于下面的代码示例,我在用户更改表单中定义'custom_groups'm2m字段,因为它是反向关系.例如,当用户在管理界面上保存表单时,如果"custom_groups"字段中有更改,我想记录.

模型:

from django.contrib.auth.models import User

class CustomGroup(models.Model):
    users = models.ManyToManyField(User, related_name='custom_groups')
Run Code Online (Sandbox Code Playgroud)

的ModelForm:

class CustomUserChangeForm(UserChangeForm):
    custom_groups = forms.ModelMultipleChoiceField(required=False, queryset=CustomGroup.objects.all())
Run Code Online (Sandbox Code Playgroud)

使用m2m_changed信号的问题是我无法检查在使用赋值运算符更新m2m字段的情况下实际更改了什么:

user.custom_groups = self.cleaned_data['custom_groups']
Run Code Online (Sandbox Code Playgroud)

这是因为在手动添加所有对象之前,内部django将在*custom_groups*上执行clear().这将执行前/后清除,然后在m2m字段上执行前/后保存.

我这么做错了吗?是否有一种更简单的方法可以实际工作?

谢谢!

django-models m2m

5
推荐指数
1
解决办法
5114
查看次数