小编Nil*_*Kar的帖子

如何按django中的日期范围过滤记录?

我可以按用户提供的日期范围过滤记录吗?

我想在 django 中创建一个 Daterange 表单(它将包含开始日期和结束日期),用户将在其中提供他们的特定日期,并根据用户提供的日期过滤对象...

我可以在 Django 中执行此操作吗?

python django django-rest-framework

2
推荐指数
1
解决办法
5219
查看次数

Django:early() 和 latest() 需要模型的 Meta 中的字段作为位置参数或“get_latest_by”

谁能解释一下这个错误是什么意思??

我在我的 views.py 中做到了这一点:

class FormListView(FormMixin, ListView):
def get(self, request, *args, **kwargs):
    # From ProcessFormMixin
    form_class = self.get_form_class()
    self.form = self.get_form(form_class)

    # From BaseListView
    self.object_list = self.get_queryset()
    allow_empty = self.get_allow_empty()
    if not allow_empty and len(self.object_list) == 0:
        raise Http404(_(u"Empty list and '%(class_name)s.allow_empty' is False.")
                      % {'class_name': self.__class__.__name__})

    context = self.get_context_data(object_list=self.object_list, form=self.form)
    return self.render_to_response(context)

def post(self, request, *args, **kwargs):
    return self.get(request, *args, **kwargs)


class CompanyListView(LoginRequiredMixin,FormListView):
    model = Company
    form_class  = daterangeform
    paginate_by = 10

    def get_queryset(self):
        return company.objects.filter(User=self.request.user)

    def get_context_data(self, **kwargs): …
Run Code Online (Sandbox Code Playgroud)

python django django-views

2
推荐指数
1
解决办法
3065
查看次数

Django:如何使用settings.AUTH_USER_MODEL执行查询?

这是我的模型:

class Company(models.Model):
    user    = models.ForeignKey(settings.AUTH_USER_MODEL,related_name="Company_Owner",on_delete=models.CASCADE,null=True,blank=True)
    name    = models.CharField(max_length=50,blank=False)
    auditor = models.ManyToManyField(settings.AUTH_USER_MODEL,related_name='main_auditor',blank=True)
Run Code Online (Sandbox Code Playgroud)

我想执行一个查询,该查询将显示与特定审计师关联的公司列表...

如何在django中使用settings.AUTH_USER_MODEL进行查询?

有人有什么想法吗?

请帮忙

django django-models

2
推荐指数
1
解决办法
931
查看次数

django.db.utils.DataError: 除以零

我在以下代码行中收到错误消息:

context['stock_margin'] = context['top_stock'].annotate(
                            Avg_purchase = ExpressionWrapper(F('total_puchase') / F('quantity_purchase'), output_field=FloatField()),
                            Avg_sales = ExpressionWrapper(F('total') / F('quantity'), output_field=FloatField())) 
Run Code Online (Sandbox Code Playgroud)

我是 Django 的新手,无法弄清楚为什么会这样..

知道如何解决这个错误吗?

谢谢

django django-views

2
推荐指数
1
解决办法
738
查看次数

如何在CBV中实现get_template_names()函数?

我对同一模型有两个列表视图,我想使用 get_template_names() 函数为一个视图指定模板,但无法解决如何执行此操作...

这是我的两个观点:

class bloglistview(LoginRequiredMixin,ListView):
model = Blog


def get_queryset(self):
    return Blog.objects.filter(User=self.request.user).order_by('id')

def get_context_data(self, **kwargs):
    context = super(bloglistview, self).get_context_data(**kwargs) 
    context['categories_list'] = categories.objects.all()
    return context

class allbloglistview(LoginRequiredMixin,ListView):
model = Blog

def get_queryset(self):
    return Blog.objects.all().order_by('id')

def get_context_data(self, **kwargs):
    context = super(allbloglistview, self).get_context_data(**kwargs) 
    context['categories_list'] = categories.objects.all()
    return context
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

python django django-views

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

提交表单时Django自动为外键赋值?

我想在用户提交创建表单时自动将公司名称呈现到数据库中...

这是我的模型:

 class company(models.Model):
    User = models.ForeignKey(User,related_name="Company_Owner",on_delete=models.CASCADE,null=True,blank=True)
    Name = models.CharField(max_length=50,blank=False)

class group1(models.Model):
    User = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
    group_Name = models.CharField(max_length=32)
    Company = models.ForeignKey(company,on_delete=models.CASCADE,null=True,blank=True,related_name='Company_group')
Run Code Online (Sandbox Code Playgroud)

这就是我在 views.py 中尝试做的事情:

class group1CreateView(LoginRequiredMixin,CreateView):
    form_class  = group1Form
    template_name = "accounting_double_entry/group1_form.html"

    def form_valid(self, form):
        form.instance.User = self.request.user
        form.instance.Company = company
        return super(group1CreateView, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)

但是得到了这个错误:

ValueError: Cannot assign "<class 'company.models.company'>": "group1.Company" must be a "company" instance.
Run Code Online (Sandbox Code Playgroud)

它对用户有效,但对公司无效。

谁能告诉我我做错了什么???

谢谢...

python django django-models django-forms django-views

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

如何为仅返回登录用户拥有的数据的查询集编写Mixin?

如何为CBV编写通用的Mixin,以便查询集只返回登录用户拥有的数据?

django有可能吗?

如果是......有人可以给我具体的建议或答案如何在django中执行此操作...

谢谢

python django django-class-based-views

0
推荐指数
1
解决办法
61
查看次数

Django:id字段的值为None

我想在我的django项目中为我的所有组创建一个唯一的id,这将帮助我们轻松检测用户操作.

我尝试过以下方法:

楷模:

class Group1(models.Model):
    urlhash = models.CharField(max_length=6, null=True, blank=True, unique=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
    group_name = models.CharField(max_length=32)
Run Code Online (Sandbox Code Playgroud)

这是我给出的功能:

def save(self):
    if not self.urlhash:
       if self.user.profile.user_type == 'Business User':
           self.urlhash = 'B' + str(self.user.id) + ('00') + str(self.id)
       else:
           self.urlhash = 'P' + str(self.user.id) + ('00') + str(self.id)
super(Group1, self).save()
Run Code Online (Sandbox Code Playgroud)

但是str(self.id)来了没有.

任何人都可以解释为什么会发生这种错误?

谢谢

根据@JPG和@sandip给出的解决方案,我终于得到了解决方案

def save(self):
   super(Group1, self).save()
   if not self.urlhash:
       if self.user.profile.user_type == 'Business User':
           self.urlhash = 'B' + str(self.user.id) + ('00') + str(self.id)
           Group1.objects.filter(pk=self.pk).update(urlhash=self.urlhash)
       else:
           self.urlhash = …
Run Code Online (Sandbox Code Playgroud)

django django-models

0
推荐指数
1
解决办法
86
查看次数

将金额转换为 Python 印度格式的单词

如何将印度语中的金额转换为单词?

我正在使用 num2words 库,但它在呈现“十万”和“千万”时呈现错误的单词集。

例如:

num2words(903614.55, lang='en-IN') 其印刷'nine hundred and three thousand, six hundred and fourteen point five five'

但实际的印度金额介绍应该是nine lakhs three thousand six hundred fourteen and five five paisa

然后我尝试了下面的代码:

def num2words(num):
    under_20 = ['Zero','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Eleven','Twelve','Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen']
    tens = ['Twenty','Thirty','Forty','Fifty','Sixty','Seventy','Eighty','Ninety']
    above_100 = {100: 'Hundred',1000:'Thousand', 100000:'Lakhs', 10000000:'Crores'}

    if num < 20:
         return under_20[num]

    if num < 100:
        return tens[(int)(num/10)-2] + ('' if num%10==0 else ' ' + under_20[num%10])

    # find the appropriate pivot - 'Million' in 3,603,550, or 'Thousand' …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
4314
查看次数