我试图了解是否可以将动态数据合并到 Django Chart JS 架构中。我浏览了几个教程,最终让 Django 与 ChartJS 一起工作,当我能够对值进行硬编码然后显示相关图表时,这非常好。我最终想要做的是对我的数据库中的动态数据进行同样的练习。我在 SO 中发现了这个相同的问题,/sf/ask/3330312751/# =但没有人回答。这正是我想要实现的目标。我已经探索了一些序列化器,我需要先序列化数据吗?预先感谢您的想法和反馈。
根据反馈,我已在相关图表中添加了上下文,但数据仍未通过。这是我的观点:
class ChartView(LoginRequiredMixin, TemplateView):
model = Myobject
template_name = 'director/chart.html'
def get_context_data(self, **kwargs):
context = super(ChartView, self).get_context_data(**kwargs)
myobject = Myobject.objects.filter(field__in=self.request.user.userprofile.field.all())
print(myobject)
context['myobject'] = myobject
return context
Run Code Online (Sandbox Code Playgroud)
我只是得到一个空白屏幕,根本没有图表,这表明有些地方显然有问题。我是否需要对 Javascript 进行其他更改才能告诉它有关该对象的信息?我的假设是否定的,我正在传递此信息查看 context_data。
我也在使用 Ajax,所以我不确定这是否是一个复杂的因素。这是我的 javascript。
<script>
var endpoint = '{% url "myobject:chart_data" %}'
var defaultData = [];
var labels = [];
$.ajax({
method: "GET",
credentials: 'same-origin',
url: endpoint,
success: function(data){
labels = data.labels
defaultData = data.default
var ctx …Run Code Online (Sandbox Code Playgroud) 我最近一直在阅读有关 django-two-factor-authentication 的文档,我在这里找到了:https : //django-two-factor-auth.readthedocs.io/en/stable/installation.html 文档很棒。但是,我正在尝试了解此解决方案的完整要求。如果我实现了这个包,那么我是否需要依赖第三方来完成这个解决方案,还是可以在没有第三方的情况下实现两因素身份验证?我主要关心的是与插入第三方相关的成本。如果可以避免,显然我更喜欢免费。如果无法避免,是否有人对提供两因素身份验证的任何第三方提供商有经验?我对 Twillio 进行了一些研究,但我知道还有其他人也执行此服务。提前感谢您的任何意见。
django django-models django-forms django-views django-rest-framework
我试图弄清楚如何根据用户当天是否第一次登录来自定义 django LoginView。我当前已设置 LoginView,使其默认为 settings.py 文件中的 LOGIN_REDIRECT_URL = "book:author" 。这工作完美无缺。当用户登录并成功通过身份验证时,他们将被重定向到“book:author”,正如我所期望的那样。
我想做的是,如果这是用户当天第一次登录,则将他们定向到一个 URL,如果是当天的任何其他登录迭代,则将他们重定向到另一个 URL。我已经阅读了有关如何执行此操作的各种方法,使用消息传递而不是条件 URL 重定向来使用 NEXT 参数,并且我试图找出哪种方法是最好、最安全和正确的方法。
这是我的默认登录视图...(没什么花哨的)
class LoginView(LoginView):
template_name = 'registration/login.html'
form_class = AuthenticationForm
Run Code Online (Sandbox Code Playgroud)
然后它根据我的 settings.py 文件定义进行重定向......
LOGIN_REDIRECT_URL = "book:author"
Run Code Online (Sandbox Code Playgroud)
将当天首次登录重定向到不同 URL 的最佳方法是什么?
在此先感谢您的任何建议。
我找到了这个 SO 答案Django -- Conditional Login Redirect,它似乎就是我正在寻找的。使用底部的示例有什么缺点吗?
与基于函数的示例相比,如何使用 LoginView?
全部,
我研究了几天,似乎找不到我要找的东西。我很清楚使用以下方法来禁用 Django 表单中的字段:
self.fields['author'].disabled = True
Run Code Online (Sandbox Code Playgroud)
上述将完全禁用一个字段。我正在尝试显示一个具有多个选择选项的复选框,但我希望自动选择并禁用其中一个选项,以便用户无法将其更改为他们选择的选项之一。这是我用来显示复选框的代码,它工作正常:
self.fields['author'] = forms.ModelMultipleChoiceField(
queryset=User.objects.all(),
widget=forms.CheckboxSelectMultiple(),
initial = user.favorite)
Run Code Online (Sandbox Code Playgroud)
user.favorite 按我的预期显示,但我想禁用它,以便它仍然处于选中状态,但用户无法更改它,但他们仍然可以在复选框中选择其他内容。这可能吗?提前致谢。
django-templates django-models django-forms django-views python-3.x
过去两天我一直在尝试弄清楚如何在 Python 中递增数字字符串。我试图在创建记录时增加序列号。我昨天花了一整天的时间尝试将其作为整数来执行,它工作正常,但我永远无法让数据库存储前导零。我在 StackOverflow 中对这个主题进行了广泛的研究,虽然有几个示例说明如何将其作为整数并存储前导零,但这些示例都不适合我。许多例子都是 2014 年的,所以方法可能已经改变了。然后,我切换到 String 并将属性更改为 CharField,并且可以让该函数使用前导零,但现在我似乎无法让它递增。再说一次,我在 SO 上找到的例子是 2014 年的,所以也许事情已经发生了一些变化。这是有效的函数,但每次我调用它时,它都不会增加。它只是返回 00000001。我确信这是我没有做的简单事情,但我没有主意。在此先感谢您的帮助。这是可以工作但不增加的函数。
def getNextSeqNo(self):
x = str(int(self.request_number) + 1)
self.request_number = str(x).zfill(8)
return self.request_number
Run Code Online (Sandbox Code Playgroud)
这是该字段的定义:
request_number = models.CharField(editable=True,null=True,max_length=254,default="00000")
Run Code Online (Sandbox Code Playgroud)
我添加了默认值“00000”,因为如果不存在,系统会给出以下错误:
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
Run Code Online (Sandbox Code Playgroud)
我意识到我的代码基本上是将我的默认值增加 1,这就是为什么我总是得到 00000001 作为我的序列号。似乎无法弄清楚如何获取当前数字然后加 1。任何帮助都会受到赞赏。
我正在尝试将我的 HTML 转换为 PDF。我观看了本教程https://www.codingforentrepreneurs.com/blog/html-template-to-pdf-in-django/并且我能够成功地让教程使用硬编码值。问题是......我无法弄清楚如何将我的模型及其属性动态合并到这个示例中。
这是我遵循的步骤...
首先,我使用以下版本将 reportlab 安装到我的环境中...
pip install --pre xhtml2pdf
Run Code Online (Sandbox Code Playgroud)
这工作...
然后我按照指示在我的项目中添加了一个 utils.py 文件。
然后我将此代码复制到我的 utils.py 文件中...
from io import BytesIO
from django.http import HttpResponse
from django.template.loader import get_template
from xhtml2pdf import pisa
def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html = template.render(context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type='application/pdf')
return None
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个如下所示的 HTML 文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Title</title>
<style type="text/css">
body {
font-weight: …Run Code Online (Sandbox Code Playgroud) django reportlab django-templates django-models django-views
django ×5
django-views ×5
django-forms ×3
python-3.x ×2
chart.js ×1
python ×1
python-3.6 ×1
reportlab ×1