我想在现有表中添加一个新列,但我想根据已有的数据给它一个默认值:
例如,每条记录都有一个start_date.现在我想添加一个open_until列,我想用start_date每个现有记录的值填充它.(即将到来的记录将能够选择不同的价值)
有友好的方式来做到这一点吗?
我想覆盖get_form表格管理中的 以便按当前用户进行过滤。问题是我收到一个错误:
object has no attribute 'current_user'
Run Code Online (Sandbox Code Playgroud)
管理员.py
class InvoiceDetail(admin.TabularAdmin):
form = InvoiceDetailForm
model = fa_invoice_lines
def get_form(self, request, obj=None, **kwargs):
form = super(InvoiceDetail, self).get_form(request, obj, **kwargs)
form.current_user = request.user
return form
class Invoice(admin.ModelAdmin)
form = InvoiceForm
inlines = [InvoiceDetail,]
Run Code Online (Sandbox Code Playgroud)表格.py
class InvoiceDetailForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(InvoiceDetailForm, self).__init__(*args, **kwargs)
self.fields['item'].queryset = fa_items.objects.filter(tenant=self.current_user)
class Meta:
model = fa_invoice_lines
Run Code Online (Sandbox Code Playgroud)我在非内联中使用了相同的策略并且它有效似乎没有调用get_form
我对开发仍然很陌生...
我想简化django-friendship并添加一些不同的功能。我已经在GitHub上进行了分叉。我不确定下一步该怎么做。
我的django-friendship仓库的本地副本应该放在哪里?我应该将其作为应用程序集成到当前的Django项目中,还是将其设置为单独的项目?在这种情况下,如何在开发时将我的主要Django项目设置为将其用作应用程序?
我可以从这里学到的任何指导或其他资源将不胜感激。
谢谢!
我有三个数据库,我想根据一个请求在事务中向它们添加数据。
\n\n例如我的代码。
\n\n@transaction.commit_manually\ndef my_view(request):\n try:\n MyModel_one(...).save(using='default')\n MyModel_two(...).save(using='db_one')\n MyModel_three(...).save(using='db_two') # <-- for example we make exception here (duplicate data)\n except IntegrityError:\n transaction.rollback()\n transaction.rollback(using='db_one')\n transaction.rollback(using='db_two')\n return ...\n transaction.commit()\n transaction.commit(using='db_one')\n transaction.commit(using='db_two')\n return ...\nRun Code Online (Sandbox Code Playgroud)\n\n结果:
\n\n问题:为什么交易在这里不起作用?我该怎么做才能获得工作交易?
\n\n(我尝试使用其他方法,但没有成功)\n(而且我知道这不是漂亮的代码,但对于理解问题来说非常简单)
\n\nDjango 1.7.7\nPython 2.7
\n\n数据库:\n默认 \xe2\x80\x94 postgres\ndb_one \xe2\x80\x94 mysql\ndb_two \xe2\x80\x94 mysql
\n我有一个问题,即在视图中甚至在shell中删除用户的权限.让我解释一下我的问题:
我在shell中做了那些测试:
org = Organisateur.objects.get(user__username__contains="ghj")
content_type = ContentType.objects.get_for_model(Tournoi)
Run Code Online (Sandbox Code Playgroud)
Tournoi是模型的名称
permission_ecriture = 'ecriture_Palaiseau'
permission = Permission.objects.get(content_type=content_type, codename=permission_ecriture)
org.user.user_permissions.remove(permission)`
Run Code Online (Sandbox Code Playgroud)
但是当我写道:
org.user.has_perm('inscription.ecriture_Palaiseau')`
Run Code Online (Sandbox Code Playgroud)
它返回True
但是当我重写时:
org = Organisateur.objects.get(user__username__contains="ghj")
org.user.has_perm('inscription.ecriture_Palaiseau')`
Run Code Online (Sandbox Code Playgroud)
它返回False
这真的很奇怪.它为什么会这样?
在我的观点中,即使我写了,似乎也没有删除权限:
org = Organisateur.objects.get(user__username__contains="ghj")
Run Code Online (Sandbox Code Playgroud)
(删除权限后,用户仍然拥有它)
我想要做的是删除用户的权限,并在之后立即向同一用户添加另一个权限.但每次我这样做,用户仍然有"删除权限"......
非常感谢你
我期待很快收到你们的回复.
我有这个领域的模型......
fulfillment_flag = models.CharField(pgettext_lazy('Delivery group field', 'Fulfillment Flag'), max_length=255,
null=True, choices=FULFILLMENT_FLAG_CHOICES)
Run Code Online (Sandbox Code Playgroud)
这是我的表格...
class FulfillmentFlagForm(forms.ModelForm):
class Meta:
model = DeliveryGroup
fields = ['fulfillment_flag', ]
def clean_fulfillment_flag(self):
return self.cleaned_data['fulfillment_flag'] or None
Run Code Online (Sandbox Code Playgroud)
我有一个 HTML 选择下拉列表,顶部有一个空白值选项。每次我选择空白选项并单击保存时,表单都不会将其保存为我的模型上的 Null 值。它会保存任何其他字段,但不会保存空白字段。它会告诉我该字段也是必需的。
如何告诉表单将空白值保存为 Null?
很抱歉这个菜鸟问题,但我很难把头放在 go 的并发部分。基本上,下面的这个程序是我正在编写的一个更大的程序的简化版本,因此我想保持类似于下面的结构。
基本上,我想addCount(..)使用无缓冲通道并发运行而不是等待 4 秒,并且当 中的所有元素int_slice都被处理后,我想对它们进行另一个操作。然而,这个程序以“恐慌:关闭通道关闭”结束,如果我取消关闭通道,我会得到我期待的输出,但它会恐慌:“致命错误:所有 goroutines 都睡着了 - 死锁”
在这种情况下如何正确实现并发部分?
提前致谢!
package main
import (
"fmt"
"time"
)
func addCount(num int, counter chan<- int) {
time.Sleep(time.Second * 2)
counter <- num * 2
}
func main() {
counter := make(chan int)
int_slice := []int{2, 4}
for _, item := range int_slice {
go addCount(item, counter)
close(counter)
}
for item := range counter {
fmt.Println(item)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个会计应用程序...
我有一个名为“组”的模型,我想在特定公司内制作它......
我的意思是不同的公司会有不同的组
所以,我在列表视图中尝试过类似的事情
class group1ListView(LoginRequiredMixin,ListView):
model = group1
def get_queryset(self, pk):
company_details = get_object_or_404(company, pk=pk)
return self.model.objects.all().filter(Q(User=self.request.user) & Q(Company=company_details.id))
Run Code Online (Sandbox Code Playgroud)
用户和公司字段通过我的 group1 模型中的外键相关。
但出现此错误:
TypeError get_queryset() 缺少 1 个必需的位置参数:'pk'
谁能告诉我我在这方面做错了什么?
谢谢
在龙卷风中,我有一个带有x块的基本模板,如下所示:
{% block x %} x {% end %}
Run Code Online (Sandbox Code Playgroud)
在从基本模板继承的第二个模板中,我想通过新值将旧值与新值混合,例如django template tag,类似于下面的代码:
{% block x %} » {{ block.super }} « {% endblock %}
Run Code Online (Sandbox Code Playgroud)
但是在龙卷风中我不能使用{{ block.super }}。
龙卷风框架已经等于Django block.super?
我有一个领域
owner = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
Run Code Online (Sandbox Code Playgroud)
模型字段上的这两个属性有什么区别?
django ×9
python ×8
concurrency ×1
django-admin ×1
django-apps ×1
django-forms ×1
django-orm ×1
django-south ×1
django-views ×1
go ×1
inlines ×1
migration ×1
permissions ×1
relational ×1
sql ×1
templates ×1
tornado ×1