我理解嵌套的FOR循环.我理解他们做了什么,以及他们是如何做到的.但我的问题是它们对我来说似乎非常难以理解.
举个例子:
for (int i = 0, y = 0; y <= ySize; y++) {
for (int x = 0; x <= xSize; x++, i++) {
vertices[i] = new Vector3(x, y);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这个循环非常简单.它只是一个x/y"二维"循环.但是当我在这个嵌套循环中添加越来越多的"维度"时,有没有办法让代码不是嵌套中的巢和可靠的反向计数变量(i,x,y,z等) ?
另外,额外的嵌套是否会以线性方式影响性能,或者当你嵌套更多的东西时,额外的FORs会使事情变得越来越低效吗?
由于我的项目的性质,我发现自己不断从查询集中获取切片,如下所示:
Thread.objects.filter(board=requested_board_id).order_by('-updatedate')[:10]
Run Code Online (Sandbox Code Playgroud)
但这让我遇到了实际使用我选择的元素进行处理的问题,因为切片后任何类型的.update()或.filter()都不起作用.
我知道有几种方法可以解决它,但它们都是混乱和混乱,严重降低了代码的可读性,特别是当我不得不经常这样做时.
什么是解决切片过滤器限制的最佳方法?
我正在以这种方式使用@login_required装饰器:
@login_required(login_url=reverse_lazy('login'))
def my_view:
Run Code Online (Sandbox Code Playgroud)
现在我知道我可以在设置中指定登录URL,但这不是我的问题.事情是在它重定向到我的"登录"URL之后,它会附加?next=到它,如下所示:
http://whatever.com/login/?next=/fakeurl/
Run Code Online (Sandbox Code Playgroud)
我不想要它.有没有办法覆盖这个?谢谢.
嗯,几乎就是标题中所说的。
我正在我的一个ModelChoiceField()中创建一个Forms,如下所示:
class FormCreatePlace(forms.ModelForm):
(...)
category = forms.ModelChoiceField(queryset=Category.objects.all(), to_field_name='name')
(...)
Run Code Online (Sandbox Code Playgroud)
该Category模型定义如下所示:
class Category(models.Model):
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=40)
Run Code Online (Sandbox Code Playgroud)
然而,HTML 表单上的字段本身坚持将主键(一系列 UUID)显示为选项。
我究竟做错了什么?
我已经通过覆盖这样的save()函数成功地散列了我的自定义用户模型的密码:
def save(self, commit = True):
user = super(RegisterForm, self).save(commit = False)
user.set_password(self.cleaned_data["password1"])
if commit:
user.save()
return user
Run Code Online (Sandbox Code Playgroud)
但我已将此覆盖置于我的注册表单定义中,我突然想到我也可以在用户模型定义中或在我的register()视图中执行此操作。
是否有“正确”的地方可以覆盖这些功能,例如clean()或save()?有什么实际区别吗?
ps:我对使用 Django 的默认密码更改和注册视图或表单不感兴趣。