mydict = {"key1":"value1", "key2":"value2"}
Run Code Online (Sandbox Code Playgroud)
在Django模板中查找字典值的常规方法是{{ mydict.key1 }}, {{ mydict.key2 }}.如果键是循环变量怎么办?即:
{% for item in list %} # where item has an attribute NAME
{{ mydict.item.NAME }} # I want to look up mydict[item.NAME]
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
mydict.item.NAME失败.如何解决这个问题?
我打算在现有的Django项目中重命名几个模型,其中有许多其他模型与我想要重命名的模型有外键关系.我很确定这需要多次迁移,但我不确定具体的程序.
假设我开始在Django应用程序中使用以下模型myapp:
class Foo(models.Model):
name = models.CharField(unique=True, max_length=32)
description = models.TextField(null=True, blank=True)
class AnotherModel(models.Model):
foo = models.ForeignKey(Foo)
is_awesome = models.BooleanField()
class YetAnotherModel(models.Model):
foo = models.ForeignKey(Foo)
is_ridonkulous = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我想重命名Foo模型,因为名称并没有真正意义,并且导致代码混乱,并且Bar会使名称更加清晰.
从我在Django开发文档中读到的内容,我假设以下迁移策略:
修改models.py:
class Bar(models.Model): # <-- changed model name
name = models.CharField(unique=True, max_length=32)
description = models.TextField(null=True, blank=True)
class AnotherModel(models.Model):
foo = models.ForeignKey(Bar) # <-- changed relation, but not field name
is_awesome = models.BooleanField()
class YetAnotherModel(models.Model):
foo = models.ForeignKey(Bar) # <-- changed relation, …Run Code Online (Sandbox Code Playgroud) 如何通过组名称将用户添加到django中的组?
我可以做这个:
user.groups.add(1) # add by id
Run Code Online (Sandbox Code Playgroud)
我该怎么做这样的事情:
user.groups.add(name='groupname') # add by name
Run Code Online (Sandbox Code Playgroud) 我似乎无法弄清楚如何为我的Django安装设置"默认"记录器.我想使用Django 1.3的新LOGGING设置settings.py.
我查看了Django Logging Doc的示例,但它看起来像他们只设置处理程序,它将为特定记录器进行日志记录.在他们的示例中,他们为名为'django','django.request'和'myproject.custom'的记录器设置处理程序.
我想要做的就是设置一个默认值logging.handlers.RotatingFileHandler,默认情况下会处理所有记录器.也就是说,如果我在我的项目中的某个地方创建一个新模块,并且它被表示为:my_app_name.my_new_module,我应该能够做到这一点并让所有日志记录转到旋转文件日志.
# In file './my_app_name/my_new_module.py'
import logging
logger = logging.getLogger('my_app_name.my_new_module')
logger.debug('Hello logs!') # <-- This should get logged to my RotatingFileHandler that I setup in `settings.py`!
Run Code Online (Sandbox Code Playgroud) 我在模板中的代码是这样的:
{% for item in items %}
{{ item.somefield }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
如果item.somefield不是None,我想显示项值,或者显示空字符串.我不想使用{%if item.somefield%}语句,我想要{{item.somefield或''}}之类的东西(我试过这个但是它不起作用)
我试图在项目列表上输出描述的前255个字符,我正在寻找一种方法来获得它.
示例:我有一个包含300个左右字符的变量.
我叫这个变量, {{ my_variable|characterlimit:255 }}
它只返回该变量的前255个字符.
如果这个标签不存在,我将简单地创建它(并建议它进入django),但我想确保在我花时间做之前没有.谢谢!
我已经下载并提取了elasticsearch,当我运行批处理文件"elasticsearch.bat"时,我收到以下错误.
"\Common was unexpected at this time."
Run Code Online (Sandbox Code Playgroud)
解决了:
通过编辑'bat'文件的第46行
'%JAVA%' ==> '!JAVA!'
我在gradle中有两个构建版本但由于某种原因,每当我将以下标志更改为false时,我都会收到标题错误消息:
ext.enableCrashlytics = false
Run Code Online (Sandbox Code Playgroud)
错误本身完成如下:
Process: com.mobile.myapp.staging, PID: 5439
java.lang.RuntimeException: Unable to create application com.mobile.myapp.UI.myappApplication: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
install an Android build tool and ask a team member to invite you to this app's organization.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4710)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
install …Run Code Online (Sandbox Code Playgroud) Python中确定两个范围中哪些值重叠的最佳方法是什么?
例如:
x = range(1,10)
y = range(8,20)
(The answer I am looking for would be the integers 8 and 9.)
Run Code Online (Sandbox Code Playgroud)
给定一个范围,x,迭代另一个范围的最佳方法是什么,y并输出两个范围共享的所有值?在此先感谢您的帮助.
编辑:
作为后续行动,我意识到我还需要知道x是否与y重叠.我正在寻找一种迭代范围列表的方法,并做一些重叠范围的额外事情.是否有一个简单的True/False语句来实现这一目标?
如何verbose_name在其管理模块中访问模型?如果我们有一个如下所示的模型实例,我们可以访问相同的内容.
instance._meta.verbose_name.title()
Run Code Online (Sandbox Code Playgroud) django ×7
python ×7
android ×1
crashlytics ×1
dictionary ×1
django-admin ×1
java ×1
logging ×1
range ×1
templates ×1