1

私はこのような問題を抱えています: 多くの都市の選挙システムを実装します。

  • 各都市には最大で 3 つの候補があります
  • 市の状況は次のとおりです。

ここに私のモデルがあります:

class City(models.Model):
ELECTION_CLOSED = -1
ELECTION_OPENNING = 0
ELECTION_BEGIN = 1

ELECTION_STATUSES = (
        (ELECTION_CLOSED,"Election closed"),
        (ELECTION_OPENNING,"Election Openning"),
        (ELECTION_BEGIN, "Election Begin"),
)
city = models.ForeignKey(Location,related_name='location')
president = models.ForeignKey(User,related_name='president',default=None,blank=True,null=False)
election_status = models.IntegerField(choices=ELECTION_STATUSES,default=ELECTION_OPENNING)
start_electing_at = models.DateTimeField(auto_now_add=True)
start_president_at = models.DateTimeField(auto_now_add=True)


class Candidate(models.Model):
    city = models.ForeignKey(Location)
    candidate = models.ForeignKey(User,related_name='votegame_candidate_id')
    num_of_votes = models.PositiveIntegerField(default=0)

そして、ここに私のリソースがあります

class CityResource(ModelResource):
city = fields.ToOneField(LocationResource, 'city')
class Meta:
    allowed_methods = ['post','get']
    queryset = City.objects.all()

class CandidateResource(ModelResource):
    city = fields.ToOneField(LocationResource, 'city')
    candidate = fields.ToOneField(UserResource, 'candidate')

class Meta:
    allowed_methods = ['post','get']
    include_resource_uri = False
    queryset = Candidate.objects.all()
    always_return_data = True
    authentication = BasicAuthentication()
    authorization= Authorization()
    filtering = {"city": ALL }
def obj_create(self, bundle, request=None, **kwargs):
    city_res = self.city.get_related_resource(self)
    print city_res.id

**#######I want to check if the City status is "Election Openning" here####**

    userbalance,created = Balance.objects.get_or_create(user=request.user)
    obj = self.obj_get_list(request,city=bundle.data.get("city"))
**#######I want to check if the number of Candidates in the city is now 3 here ######**

    try:
        bundle= super(CandidateResource, self).obj_create(bundle, request, user=request.user)
    except IntegrityError,e:
        print e

    return bundle

上記の2つの問題を参照してください。POST を実行します。

curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"city" : "/votegame/v1_votegame/city/123/"}' http://127.0.0.1:8000/votegame/v1_votegame/candidate/ -u summer:123456

問題 1:

#市のステータスが「開票中」か確認したい方はこちら

私は : print city_res.idで、得た <tastypie.fields.CharField object at 0xb50d7ecc>

問題 2 :

#市の候補者数が現在3人かどうか確認したいのはこちら

私は何も得られませんでしたprint obj が、私が変更した場合

obj = self.obj_get_list(request,city="123")

リストを手に入れました。

誰か教えてください。どうもありがとうございました。

4

0 に答える 0