質問編集履歴
1
文章とタイトルの見直し
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<python,django>
|
1
|
+
<python,django>別のアプリケーションのclass内関数をimportしたい
|
test
CHANGED
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
-
|
87
|
+
pollsアプリーケーションに存在するmodels.pyの
|
88
88
|
|
89
89
|
|
90
90
|
|
@@ -98,11 +98,29 @@
|
|
98
98
|
|
99
99
|
date_limit = models.DateTimeField('公開期限', default = timezone.now() + timedelta(days=7) )
|
100
100
|
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
def is_date_limit(self):
|
106
|
+
|
107
|
+
# まだ公開期限を過ぎていないならTrue
|
108
|
+
|
109
|
+
now = timezone.now()
|
110
|
+
|
111
|
+
return now <= self.date_limit
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
101
|
-
```
|
119
|
+
```
|
102
|
-
|
103
|
-
|
104
|
-
|
120
|
+
|
121
|
+
|
122
|
+
|
105
|
-
|
123
|
+
question_textを取得して、別アプリケーションであるboardアプリケーションに表示しようとしています。
|
106
124
|
|
107
125
|
|
108
126
|
|
@@ -122,6 +140,14 @@
|
|
122
140
|
|
123
141
|
|
124
142
|
|
143
|
+
import sys
|
144
|
+
|
145
|
+
sys.path.append('../')
|
146
|
+
|
147
|
+
from polls.models import Question
|
148
|
+
|
149
|
+
|
150
|
+
|
125
151
|
class FormAndListView(FormView, ListView, TemplateResponseMixin):
|
126
152
|
|
127
153
|
def get(self, request, *args, **kwargs):
|
@@ -156,7 +182,7 @@
|
|
156
182
|
|
157
183
|
|
158
184
|
|
159
|
-
<p><a href="http://localhost:8000/polls/">現在
|
185
|
+
<p><a href="http://localhost:8000/polls/">現在投票中のアンケート一覧{% if question.is_date_limit %}{% for questions in question %}{{ questions.question_text }}{% endfor %}{% endif %}</a></p>
|
160
186
|
|
161
187
|
|
162
188
|
|
@@ -174,7 +200,7 @@
|
|
174
200
|
|
175
201
|
|
176
202
|
|
177
|
-
一番上にquestion_textの内容が表示され、ここまでは問題ありませ
|
203
|
+
一番上にquestion_textの内容が表示され、ここまでは問題ありませでした。
|
178
204
|
|
179
205
|
|
180
206
|
|
@@ -184,49 +210,107 @@
|
|
184
210
|
|
185
211
|
|
186
212
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
```
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
```
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
213
|
+
しかしさらにboard.htmlを改造し、
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
```
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
<p><a href="http://localhost:8000/polls/">現在投票中のアンケート一覧{% if question.is_date_limit %}{% for questions in question %}<li>{{ questions.question_text }}</li>{% endfor %}{% endif %}</a></p>
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
```
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
とすると今度は質問が表示されなくなってしまいます。
|
230
|
+
|
231
|
+
おそらくpollsアプリケーションのmodels.py内にある
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
```
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
class Question(models.Model):
|
240
|
+
|
241
|
+
question_text = models.CharField(max_length=200)
|
242
|
+
|
243
|
+
pub_date = models.DateTimeField('date published')
|
244
|
+
|
245
|
+
date_limit = models.DateTimeField('公開期限', default = timezone.now() + timedelta(days=7) )
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
def is_date_limit(self):
|
252
|
+
|
253
|
+
# まだ公開期限を過ぎていないならTrue
|
254
|
+
|
255
|
+
now = timezone.now()
|
256
|
+
|
257
|
+
return now <= self.date_limit
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
```
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
class Question(models.Model):内のdef is_date_limit(self):
|
268
|
+
|
269
|
+
にアクセスできていないことが原因なのだと思います。
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
boardアプリケーションからpollsアプリケーションのmodel.pyにあるclass Qusetionまでは呼び出せるのですがclass内関数まではimportできないようで、解決のため試行錯誤しております。
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
boardアプリケーションのviews.py
|
280
|
+
|
281
|
+
```
|
282
|
+
|
283
|
+
import sys
|
284
|
+
|
285
|
+
sys.path.append('../')
|
286
|
+
|
287
|
+
from polls.models import Question ←ここまでは問題ない
|
288
|
+
|
289
|
+
from polls.models import Question.is_date_limit ←ここがおそらく間違っている
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
```
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
エラーメッセージはこのように表示されております
|
298
|
+
|
299
|
+
```
|
300
|
+
|
301
|
+
from polls.models import is_date_limit
|
302
|
+
|
303
|
+
ImportError: cannot import name 'is_date_limit' from 'polls.models'
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
```
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
同アプリケーション内ならばis_date_limit関数は問題なく動作しているのですがそれを別のアプリケーションでも動作させるにはどうすればよいでしょうか?
|
312
|
+
|
313
|
+
アドバイスをいただけると幸いです。
|
230
314
|
|
231
315
|
|
232
316
|
|