2017-05-22 9 views
-1

私はちょうどDjangoで私の旅を始めると私は選択フィールドに問題があります。 私はいくつかのチェスゲームでモデルを作りたいと思っています。チェスボードを使ってチョイスフィールドを作らなければなりません。それは、このコードの可能性よりシンプル宣言Django、モデル宣言のループ

move = { 
    ('a1', 'a1'), 
    ('b1', 'b1'), 

など です: 私はこのようなものがありますか? 多分いくつかのforループ?

答えて

0

はいあなたはループを使用して、これを生成することができます。

moves = ['a1', 'b1', 'c1'.....] 

moves_choices = [(m, m) for m in moves] 
+0

ありがとうございました。 – kuziolewski

0

私はチェスとあまりにもよく知って言うことができないんだけど、あなたがA1-H8をしたいと仮定すると、これは動作します:

import itertools 

move = [] 
for a, b in itertools.product('abcdefgh', '12345678'): 
    name = a + b 
    move.append((name, name)) 

結果は

[ 
    ('a1', 'a1'), ('a2', 'a2'), ('a3', 'a3'), ('a4', 'a4'), 
    ('a5', 'a5'), ('a6', 'a6'), ('a7', 'a7'), ('a8', 'a8'), 
    ('b1', 'b1'), ('b2', 'b2'), ('b3', 'b3'), ('b4', 'b4'), 
    ('b5', 'b5'), ('b6', 'b6'), ('b7', 'b7'), ('b8', 'b8'), 
    ('c1', 'c1'), ('c2', 'c2'), ('c3', 'c3'), ('c4', 'c4'), 
    ('c5', 'c5'), ('c6', 'c6'), ('c7', 'c7'), ('c8', 'c8'), 
    ('d1', 'd1'), ('d2', 'd2'), ('d3', 'd3'), ('d4', 'd4'), 
    ('d5', 'd5'), ('d6', 'd6'), ('d7', 'd7'), ('d8', 'd8'), 
    ('e1', 'e1'), ('e2', 'e2'), ('e3', 'e3'), ('e4', 'e4'), 
    ('e5', 'e5'), ('e6', 'e6'), ('e7', 'e7'), ('e8', 'e8'), 
    ('f1', 'f1'), ('f2', 'f2'), ('f3', 'f3'), ('f4', 'f4'), 
    ('f5', 'f5'), ('f6', 'f6'), ('f7', 'f7'), ('f8', 'f8'), 
    ('g1', 'g1'), ('g2', 'g2'), ('g3', 'g3'), ('g4', 'g4'), 
    ('g5', 'g5'), ('g6', 'g6'), ('g7', 'g7'), ('g8', 'g8'), 
    ('h1', 'h1'), ('h2', 'h2'), ('h3', 'h3'), ('h4', 'h4'), 
    ('h5', 'h5'), ('h6', 'h6'), ('h7', 'h7'), ('h8', 'h8') 

] 
+0

ありがとう!、それは私のために働く! :) – kuziolewski

関連する問題