当前流量:
1) mysql >> CREATE {DATABASE} db_name [create_specification] ;
2) change database info in settings.py
3) python manage.py syncdb (assuming we have ready-made models)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用步骤 1 的情况下做同样的事情。也许将数据库名称和规范放在 settings.py 中的某处,这样我就不必每次将这个项目转移到某个服务器时手动配置数据库
编辑- 为什么我想避开第一步:
就我而言,不同表的不同列具有不同的排序规则类型。因此,在开发过程中,每当我重新创建数据库时,我都需要手动更改各个列/表的配置,这令人沮丧。
我有以下两个类,我app.models正在使用 wagtail API 将数据作为 json
class AuthorMeta(Page):
author=models.OneToOneField(User)
city = models.ForeignKey('Cities', related_name='related_author')
class Cities(Page):
name = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试时/api/v1/pages/?type=dashboard.AuthorMeta&fields=title,city,它返回以下数据:
{
"meta": {
"total_count": 1
},
"pages": [
{
"id": 11,
"meta": {
"type": "dashboard.AuthorMeta",
"detail_url": "http://localhost:8000/api/v1/pages/11/"
},
"title": "Suneet Choudhary",
"city": {
"id": 10,
"meta": {
"type": "dashboard.Cities",
"detail_url": "http://localhost:8000/api/v1/pages/10/"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
在城市字段中,它返回城市的id和meta。如何在不进行额外查询的情况下在此处的响应中获取城市名称?:/
我在文档中找不到任何解决方案。我错过了什么吗?
所以我有一个自动完成视图,当我输入时显示下拉...但我希望在活动开始时显示下拉列表.所以我发现这个答案说使用showDropDown()应该工作.当在任何TouchListener或任何其他用户触发的事件上调用时,它确实适用于我的情况.但是如果我直接在onCreate()中使用它就无法工作...我的onCreate()中的以下代码可以工作
final AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.autoCompleteUserName);
String[] users = getResources().getStringArray(R.array.users);
ArrayAdapter<?> adapter = new ArrayAdapter<Object>(this,R.layout.compose_ac_list_item,users);
actv.setAdapter(adapter);
actv.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
// WORKS IF USED ON TOUCH
actv.showDropDown();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
以下不起作用
final AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id.autoCompleteUserName);
String[] users = getResources().getStringArray(R.array.users);
ArrayAdapter<?> adapter = new ArrayAdapter<Object>(this,R.layout.compose_ac_list_item,users);
actv.setAdapter(adapter);
actv.showDropDown();
Run Code Online (Sandbox Code Playgroud) 所以我有这个results包含对象列表的变量.所以我写这段代码
entry = {}
temp = []
temp2 = []
for result in results:
entry['value'] = result['fb_id']
entry['label'] = result['full_name']
temp.append(entry)
temp2.append(result)
print (result)
print (entry)
print temp
print temp2
Run Code Online (Sandbox Code Playgroud)
这打印
{'fb_id': 17500787L, 'full_name': u'Sandipan Mondal'} #this is result1
{'value': 17500787L, 'label': u'Sandipan Mondal'} #this is entry1
{'fb_id': 597333664L, 'full_name': u'Aakash Tulsani'} #this is result2
{'value': 597333664L, 'label': u'Aakash Tulsani'} #this is entry2
[{'value': 597333664L, 'label': u'Aakash Tulsani'}, #this is temp
{'value': 597333664L, 'label': u'Aakash Tulsani'}]
[{'fb_id': 17500787L, …Run Code Online (Sandbox Code Playgroud) 我有一个Listview,每个listview项看起来像这样!
ListViewItem是RelativeLayout.现在我在创建两个分屏按钮时遇到问题.目前我这样做.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:layout_below="@+id/ReviewText">
<RelativeLayout
android:layout_weight="1"
android:layout_height="fill_parent" android:layout_width="0dp"
android:onClick="likeClicked"
android:clickable="true" >
<!-- SOME CODE -->
</RelativeLayout>
<RelativeLayout
android:layout_weight="1"
android:layout_height="fill_parent" android:layout_width="0dp"
android:onClick="likeClicked"
android:clickable="true" >
<!-- SOME CODE -->
</RelativeLayout>
</LinearLayout>
<RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这工作得非常好,但这里的android dev文档说明了这一点
此外,嵌套使用layout_weight参数的几个LinearLayout实例可能特别昂贵,因为每个子项需要测量两次.当布局重复膨胀时(例如在ListView或GridView中使用时),这一点尤其重要.
我可以改进我的代码以提高性能.如果是,怎么样?有没有其他方法可以在不使用LinearLayout的情况下均匀分割两个按钮?