就我而言,Django 应用程序通过 API 将用户数据保存到外部服务或从外部服务获取用户数据。我得到一个具有许多用户属性的对象,例如姓名、地址等。
为了更新这些信息,我使用 Django 的本机表单,使用速记模板格式,例如: {{ edit_account_form.as_p }}
当我显示表单以编辑信息时,我想用来自用户对象的数据预先填充它。我知道我可以将对象传递到模板中并将这些值呈现到每个输入字段的 val 和占位符中,但是这将要求我完全重新创建通过输入输入的表单,我不想这样做。
可能的?
我试图在我的FormView中的get()方法中提供一些额外的上下文.我需要get()因为我需要首先运行一些逻辑,检查是否有潜在的重定向.我还需要访问请求对象(因为我需要检查会话数据).无法弄清楚该怎么做.以下简化代码..
尝试1:
class LoginView(FormView):
template_name = 'members/login.html'
form_class = LoginForm
def get(self, request):
# check if to redirect
if self.request.session.get('user'):
return redirect('/dashboard/')
# render page with extra context
else:
context = super(LoginView, self).get(request)
context['message'] = self.request.session['message']
return context
Run Code Online (Sandbox Code Playgroud)
没有错误,但模板中没有上下文.
尝试2:
class LoginView(FormView):
template_name = 'members/login.html'
form_class = LoginForm
def get_context_data(self, request, **kwargs):
# check if to redirect
if self.request.session.get('user'):
return redirect('/dashboard/')
# render page with extra context
else:
context = super(LoginView, self).get_context_data(**kwargs)
context['message'] = self.request.session['message']
return context
Run Code Online (Sandbox Code Playgroud)
入门 TypeError: get_context_data() …
我在一个新项目中使用 Swig。我的一个变量是一组值(字符串)。Swig 中是否有内置运算符来检查数组中是否存在值?根据文档,似乎“在”应该这样做,但没有提供进一步的细节。另外,否定它的正确方法是什么?我正在尝试以下操作,但没有运气。我需要编写自定义标签吗?
{% if 'isTime' in dtSettings %}checked{% endif %}
{% if 'isTime' not in dtSettings %}hide{% endif %}
{% if !'isTime' in dtSettings %}hide{% endif %}
{% if !('isTime' in dtSettings) %}hide{% endif %}
Run Code Online (Sandbox Code Playgroud) 对不起,关于TestFirst.org Ruby练习的另一个问题是编写一个来自新手的'Pig Latin'方法.其他答案有所帮助,但我无法成功地适应它们.主要问题是我正在尝试编写一种方法来扫描一串单词(不只是一个单词),修改一些单词(如果适用),然后返回完整的字符串.
下面是我的代码尝试执行练习的第一部分,即将"ay"附加到以元音开头的任何单词.但是,它对我不起作用 - 似乎是.include?从与单个字母(?)比较时永远不会返回true
任何帮助深表感谢!
# PIG LATIN
# If any word within the input string begins with a vowel, add an "ay" to the end of the word
def translate(string)
vowels_array = %w{a e i o u y}
consonants_array = ('a'..'z').to_a - vowels_array
string_array = string.split
string_array.each do |word|
if vowels_array.include?(word[0])
word + 'ay'
end
end
return string_array.join(" ")
end
translate("apple orange mango") # => "appleay orangeay mango" but does not
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,它允许用户浏览站点并从任何页面登录(登录链接位于公共标题中)。一旦成功登录,用户当前将从登录页面重定向到 root_url。
重定向到原始页面会更友好。我试图将原始页面的命名路由存储到会话中,但那些似乎是对象,因此无法通过。此外,并非所有路由都带有命名助手。另一方面,当我将文字路径作为字符串传递给redirect_to 时,例如'orders/index',Rails 将/action 解释为id 参数并出错。
Rails 会这样做吗?谢谢!
我的Django模板中有以下循环:
{% for item in state.list %}
<div> HTML (CUSTOMERS BY STATE) </div>
<!-- print sum of customers at bottom of list -->
{% if forloop.last %}
<h4>{{ forloop.counter }} Valued Customers</h4>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
显然,如果我最终只有一位客户,我想打印单数的“尊贵客户”
根据Django的文档,应该使用blocktrans。尝试了以下几种嵌套方式:
{% blocktrans count %}
{% if forloop.last %}
<h4>
{{ forloop.counter }}
Valued Customer
{% plural %}
Valued Customers
</h4>
{% endif %}
{% endblocktrans %}
Run Code Online (Sandbox Code Playgroud)
继续获取TemplateSyntaxError:无效的块标记:'blocktrans',预期为'empty'或'endfor'
有没有办法与另一个循环结合?任何想法如何解决?谢谢!
以下是来自Test-First.org的练习#5(Silly Blocks)的一部分,我正试图破解,因为我自己学习,为Ruby课程做准备.
每个练习都附带一个RSpec'_pecpec.rb'文件,用户需要编写相应的Ruby代码'.rb'文件,并继续"rake it"直到满足所有RSpec测试(示例).至少这是我的解释,我已经能够完成前四个练习,但是,本练习中的RSpec语法让我难过.(不幸的是,我不仅对编码很新,我对RSpes来说肯定是新手,而且我无法在线找到RSpec/TDD的好新手级介绍).
因此,我希望驻地的RSpec专家可以提供帮助.基本上,我想知道下面的RSpec语法究竟是什么告诉我为代码编写的?
require "silly_blocks"
describe "some silly block functions" do
describe "reverser" do
it "reverses the string returned by the default block" do
result = reverser do
"hello"
end
result.should == "olleh"
end
...
Run Code Online (Sandbox Code Playgroud)
我假设我要编写一个名为'reverser'的方法,它接受一个字符串参数,并返回反转的sting,例如:
def reverser(string)
return string.reverse
end
Run Code Online (Sandbox Code Playgroud)
唉,这显然不正确 - 耙子惨遭失败:
some silly block functions
reverser
reverses the string returned by the default block (FAILED - 1)
Failures:
1) some silly block functions reverser reverses the string returned by the def
ault block
Failure/Error: result …Run Code Online (Sandbox Code Playgroud) django ×3
python ×3
ruby ×2
arrays ×1
django-views ×1
javascript ×1
pluralize ×1
rspec ×1
templates ×1