小编sun*_*eet的帖子

使用 settings.py 或 models.py 在 Django 中自动创建数据库

当前流量:

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 中的某处,这样我就不必每次将这个项目转移到某个服务器时手动配置数据库

编辑- 为什么我想避开第一步:

就我而言,不同表的不同列具有不同的排序规则类型。因此,在开发过程中,每当我重新创建数据库时,我都需要手动更改各个列/表的配置,这令人沮丧。

python django

5
推荐指数
1
解决办法
2万
查看次数

如何访问外键数据而无需在 Wagtail(django) 中进行额外查询

我有以下两个类,我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)

在城市字段中,它返回城市的idmeta。如何在不进行额外查询的情况下在此处的响应中获取城市名称?:/

我在文档中找不到任何解决方案。我错过了什么吗?

python django django-models wagtail

4
推荐指数
1
解决办法
757
查看次数

Android showDropDown onCreate不起作用

所以我有一个自动完成视图,当我输入时显示下拉...但我希望在活动开始时显示下拉列表.所以我发现这个答案说使用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)

android autocompletetextview

3
推荐指数
1
解决办法
2805
查看次数

迭代与python中的字典列表不一致的行为

所以我有这个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)

python arrays dictionary

0
推荐指数
1
解决办法
51
查看次数

使用RelativeLayout均匀分割布局

我有一个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的情况下均匀分割两个按钮?

android listview android-layout android-listview

-2
推荐指数
1
解决办法
2765
查看次数