Django管理器返回今天日期时间字段的所有条目

2024-09-30 20:20:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我该如何让一个管理器返回一个带有今天日期的模型中的所有条目,模型字段是日期时间字段,而不是日期字段?在

timestamp = models.DateTimeField(auto_now=True)

class ValidEntryManager(models.Manager):
    def get_query_set(self):
        return super(ValidEntryManager, self).get_query_set().filter(timestamp__gte=datetime.today(), timestamp__lte=datetime.today())

allowed_entries = ValidEntryManager()

我应该返回0对象。在

print Entries.allowed_entries.all() >>>> []


Tags: 模型self管理器gettodaydatetimemodels时间
6条回答

您可以在活动中的适配器类中处理单击事件。在你的情况下,你两者都做

以及管理

 addContact.setVisibility(View.GONE);
 inputName.setVisibility(View.VISIBLE);

在listview_项目布局中的主视图的单击事件中写入上述内容(不要忘记将addContact和inputName视图传递给CustomAdapter)

将此项添加到Listview的父项和Listview\u项的父项,然后重试:

android:descendantFocusability="blocksDescendants"

像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:descendantFocusability="blocksDescendants"
android:layout_height="match_parent"
android:background="@color/background"
tools:context="${packageName}.${activityClass}" >

<ListView
    android:id="@+id/lv_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:cacheColorHint="@android:color/transparent"
    android:listSelector="@android:color/transparent" />

这是:

  <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:descendantFocusability="blocksDescendants"
  android:minHeight="100dp" >
    <com.example.yo.view.MyViewPager
       android:id="@+id/vp_list_item"
       android:layout_width="fill_parent"
       android:layout_height="100dp" />

</RelativeLayout>

如果这不起作用,请在EditText和TextView上调用isFocusable()

addContact.isFocusable(false);

inputName.isFocusable(false);

仅在listview_item父布局中添加这一行

  android:descendantFocusability="blocksDescendants"

实际上,当列表项包含可以获得焦点的元素时,列表项单击listener not work

public View getView(final int position, View convertView, ViewGroup parent) {
    // Declare Variables
    ViewHolder holder;
    View iView = convertView;


    if (convertView == null) {
        iView = inflater.inflate(R.layout.listview_item, parent, false);
        holder = new ViewHolder();

        holder.txt_name = (TextView) iView.findViewById(R.id.name);
        Typeface custom_fontG = Typeface.createFromAsset(
                context.getAssets(), "KozGoPr6N-Regular.otf");
        holder.txt_name.setTypeface(custom_fontG);

        holder.txt_desc = (TextView) iView.findViewById(R.id.detail);
        holder.ivProfile = (ImageView) iView.findViewById(R.id.flag);
        iView.setTag(holder);
    } else {
        holder = (ViewHolder) iView.getTag();
    }
    // Get the position
    resultp = data.get(position);

    // Locate the TextViews in listview_item.xml

    // Capture position and set results to the TextViews
    holder.txt_name.setText(resultp.get(OurTeam.TAG_NAME));
    holder.txt_desc.setText(resultp.get(OurTeam.TAG_DETAIL));


    imageLoader.displayImage(TAG_IMAGEURL + resultp.get((OurTeam.TAG_IMG)),
            holder.ivProfile, options);
    // Capture ListView item click
    iView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // Get the position
            // your code

        }
    });
    return iView;
}

您必须将“setOnItemClickListener”放入适配器类,而不是MainActivity

public class MainActivity extends Activity {
private static final String TAG = "MainActivity";

private Context mContext;

private ListView mainListView;

private TextView addContact;

private EditText inputName;

private List<String> contactList = new ArrayList<String>();

private MainListAdapter mainAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    mContext = this;

    init();
}

private void init() {
    mainListView = (ListView)findViewById(R.id.lv_main);

    initListData();

    View footerView = getLayoutInflater().inflate(R.layout.listview_item_main, null);
    footerView.setBackgroundColor(getResources().getColor(R.color.gold));

    addContact = (TextView)footerView.findViewById(R.id.tv_item_name);
    addContact.setText(getString(R.string.plus));
    mainListView.addFooterView(footerView);

    mainAdapter = new MainListAdapter(mContext, contactList);
    mainListView.setAdapter(mainAdapter);

   /* mainListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             Log.e(TAG, "on click item " + position);
            if (position == contactList.size()) {
                addContact.setVisibility(View.GONE);
                inputName.setVisibility(View.VISIBLE);
            }
        }
    });*/

    inputName = (EditText)footerView.findViewById(R.id.et_input_name);
    inputName.setOnEditorActionListener(new OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_GO) {
                InputMethodManager imm = (InputMethodManager)mContext
                        .getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm.isActive()) {
                    imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
                }
                String strInput = inputName.getText().toString();
                contactList.add(strInput);

                addContact.setVisibility(View.VISIBLE);
                inputName.getText().clear();
                inputName.setVisibility(View.GONE);

            }
            return false;
        }
    });
}

private void initListData() {
    // temp data
    contactList.add("Jacob");
    contactList.add("Nicolas");
    contactList.add("David");
    contactList.add("Jacob");
    contactList.add("Nicolas");
    contactList.add("David");

}

}

适配器类是

public class MainListAdapter extends BaseAdapter {

private static final String TAG = "MainListAdapter";

private Context mContext;

private LayoutInflater layoutInflater;

private MyViewPager itemViewPager;

private View viewMain;

private View viewSlide;

private TextView cancel;

private TextView delete;

private ArrayList<View> views;

private PagerAdapter pagerAdapter;

private List<String> mList;

public MainListAdapter(Context context, List<String> list) {
    mContext = context;

    layoutInflater = LayoutInflater.from(mContext);
    mList = list;
}

@Override
public int getCount() {
    return mList != null ? mList.size() : 0;
}

@Override
public Object getItem(int position) {
    return mList != null ? mList.get(position) : null;
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.listview_item, null);
    }

    viewMain = layoutInflater.inflate(R.layout.listview_item_main, null);
    viewSlide = layoutInflater.inflate(R.layout.listview_item_slide, null);

    cancel = (TextView)viewSlide.findViewById(R.id.tv_menu_cancel);
    delete = (TextView)viewSlide.findViewById(R.id.tv_menu_delete);
    cancel.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.v(TAG, "on click cancel");
            MyViewPager currPagerView = (MyViewPager)v.getParent().getParent();

            currPagerView.setCurrentItem(0, true);
            notifyDataSetChanged();
        }
    });
    delete.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.v(TAG, "on click cancel");
            itemViewPager.setCurrentItem(0, true);
            notifyDataSetChanged();
            MyViewPager currPagerView = (MyViewPager)v.getParent().getParent();

            deleteContact(currPagerView.getSelfIndex());
        }
    });

    views = new ArrayList<View>();
    views.add(viewMain);
    views.add(viewSlide);

    itemViewPager = (MyViewPager)convertView.findViewById(R.id.vp_list_item);
    itemViewPager.setSelfIndex(position);
    pagerAdapter = new PagerAdapter() {

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            ((MyViewPager)container).removeView(views.get(position));
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ((MyViewPager)container).addView(views.get(position));
            // Log.v("PagerAdapter", "curr item positon is" + position);
            return views.get(position);
        }

        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            return arg0 == arg1;
        }

        @Override
        public int getCount() {
            return views.size();
        }
    };

    fillItemData(convertView, position, viewMain);
    itemViewPager.setAdapter(pagerAdapter);
    itemViewPager.setCurrentItem(0);
    itemViewPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageSelected(int arg0) {
            Log.v(TAG, "onPageSelected");

        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            Log.v(TAG, "onPageScrolled, " + "arg0=" + arg0 + ", arg1=" + arg1 + ", arg2="
                    + arg2);

        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            Log.v(TAG, "onPageScrollStateChanged");

        }
    });

    // notifyDataSetChanged();
    // pagerAdapter.notifyDataSetChanged();

     convertView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // your code here for list item click listener... 
        }
    })

    return convertView;
}

private void fillItemData(View convertView, int position, View viewMain) {
    int[] colorCollection = {
            R.color.green, R.color.royalblue, R.color.violet
    };

    for (int i = 0; i < colorCollection.length; i++) {
        colorCollection[i] = mContext.getResources().getColor(colorCollection[i]);
    }

    int currColor = colorCollection[position % colorCollection.length];
    convertView.setBackgroundColor(currColor);

    TextView itemName = (TextView)viewMain.findViewById(R.id.tv_item_name);

    itemName.setText(mList.get(position));
    // Log.v(TAG, "item name is " + itemName.getText());
}

private void deleteContact(int postion) {
    mList.remove(postion);
}

}

相关问题 更多 >