我可以按用户提供的日期范围过滤记录吗?
我想在 django 中创建一个 Daterange 表单(它将包含开始日期和结束日期),用户将在其中提供他们的特定日期,并根据用户提供的日期过滤对象...
我可以在 Django 中执行此操作吗?
谁能解释一下这个错误是什么意思??
我在我的 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) 这是我的模型:
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进行查询?
有人有什么想法吗?
请帮忙
我在以下代码行中收到错误消息:
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 的新手,无法弄清楚为什么会这样..
知道如何解决这个错误吗?
谢谢
我对同一模型有两个列表视图,我想使用 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)
有人可以帮我解决这个问题吗?
我想在用户提交创建表单时自动将公司名称呈现到数据库中...
这是我的模型:
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)
它对用户有效,但对公司无效。
谁能告诉我我做错了什么???
谢谢...
如何为CBV编写通用的Mixin,以便查询集只返回登录用户拥有的数据?
django有可能吗?
如果是......有人可以给我具体的建议或答案如何在django中执行此操作...
谢谢
我想在我的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) 如何将印度语中的金额转换为单词?
我正在使用 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)